1.8.1 类图:最初设计
我们从一个简单的类图(如图1-20所示)开始,它描述了程序涉及到的对象的基本结构,然后我们就可以为其添加一些细节并不断精化它,直到得到一个完整的类图形式。几乎所有的面向对象分析方法都表明了这种循环方法,它非常适合用来说明一个游戏设想如何从草案阶段发展到完整的具有某些特色的项目。
从游戏开发方案可以发现两个类:Block,它代表一个游戏部件;Square,它是Block的基本组成部件。

图1-20 类图——最初设计
基于游戏开发方案,我们可以确定Block类的某些方法(method)或函数(function)、属性(property)或变量(variable),如表1-1所示。
表1-1 Block类成员
|
类 型 |
名 称 |
描 述 |
|
方法 |
Down |
使方块在屏幕上下落 |
|
方法 |
Right |
使方块向右移动 |
|
方法 |
Left |
使方块向左移动 |
|
方法 |
Rotate |
使方块按顺时针方向旋转 |
|
属性 |
Square1 |
指定组成方块的其中一个正方形 |
|
属性 |
Square2 |
指定组成方块的其中一个正方形 |
|
属性 |
Square3 |
指定组成方块的其中一个正方形 |
|
属性 |
Square4 |
指定组成方块的其中一个正方形 |
每个block由4个来自Square类的对象组成,Square类的描述如表1-2所示。
表1-2 Square类成员
|
类 型 |
名 称 |
描 述 |
|
方法 |
Show |
在指定的坐标位置(Location属性),使用指定的色彩(ForeColor属性)、指定的尺寸(Size属性)绘制正方形,并使用背景色(BackColor)填充它 |
|
方法 |
Hide |
从屏幕上删除正方形 |
|
属性 |
ForeColor |
指定正方形的前景色 |
|
属性 |
BackColor |
指定正方形的背景色 |
|
属性 |
Location |
指定正方形在屏幕上的x、y坐标位置 |
|
属性 |
Size |
指定正方形的高度和宽度 |
比较上述两个表,可以发现:类中存在显示正方形和隐藏正方形的方法。因为正方形是由Block对象绘制的,所以Block类也必须包含相应的方法和属性。我们可以把第一个类图进行调整以产生如图1-21所示的类图。

图1-21 类图—— 第二次草图
我们使用SquareSize作为block的size属性,block的尺寸是无关紧要的,但是block必须知道正方形的尺寸,以便于block能够创建正方形。
如果有必要,我们可以在后面的内容中再次回到类图的讨论并对它进行调整。现在让我们把目光转向游戏引擎,接下来的部分将对其进行描述。






