最近在学习c++,发现好难学,还在还学会一点。那么,就学以致用一下,打算写个c++简单版的坦克游戏。只所以选择做这个,因为比较简单。
相信很多人都玩过这个游戏,如果没有玩过的话,可以去问问“度娘”,会找到好多。我们玩游戏比较简单,但是,动起手来写代码总会不知道从何下手,我也很纠结。想来想去,有了点眉目:
将所有的数据封装到数据类(CData)中
将所有的算法、检测判断放到引擎类(CEngine)中
将绘图的放置到绘图(CDraw)中
将业务逻辑放置到 游戏类(CGame)中
将CData作为基类存在,CEngine、CDraw作为CData的子类,同时作为CGame的基类,由于c++中存在多继承,为了避免出现多继承的二义性,建议使用虚基类实现。
形成如下的逻辑:
CData
/ \
/ \
/ \
CEngine CDraw
\ /
\ /
\ /
CGame
代码如下:
CData类
class CData{ public: CData(); ~CData(); }CEngine 类
class CEngine : virtual public CData { public: CEngine(void); ~CEngine(void); }
CDraw类
class CDraw : virtual public CData { public: CDraw(void); ~CDraw(void); }
CGame类
class CGame : virtual public CDraw, virtual public CEngine { public: CControl(void); ~CControl(void); }
先这样,后面再接着写