2.2.3 游戏设计分析
有前面的功能描述可知,我先虚拟出俄罗斯方块游戏的类对象,并抽象出核心的数据属性和操作方法等,然后再作细化,最后将整个虚拟类的外壳脱掉,再移植到视图类中去,其实现如下:
CRectGameView : public CView {
//内部存取数据结构
int m_stateMap[MAX_ROW][MAX_COL]; //初始化操作
GameInitnal(); //游戏的初始化
//用于判断数据相关状态的操作
IsLeftLimit(); //下坠物件是否可向左移动 IsRightLitmit(); //
IsBottom(); //是否已经到达了底部 IsGameEnd(); //是否游戏已经结束 //方块物件下坠过程中的操作 RectChange(); //下坠物件变形 RectDown(); //下坠物件正常下落
RectArrow(); //下坠物件方向移动(左,右,下加速) //状态控制操作
GameStart(); //游戏开始 GamePause(); //游戏暂停 GameEnd(); //游戏结束 }
通过上面的代码可以看出,在虚拟类中抽象出了核心的内部数据和一些基本的操作函数。对于操作函数,可以把它们分为内部实现的基本核心操作(如判断操作)以及明显提供给外部使用的整体模块外部操作(如状态控制操作)。而内部的基本操作又可以分为判断操作和执行操作这样两种类型[3]。