2008年(53)
分类: C/C++
2008-06-25 14:21:52
1. 事物的抽象与分类。要把一个大的事件(物)分解成诺干个相同惑相似的事件(物),用一个共同的结构体来表述这若干个相同事件(物)的共同特征。每个特征都是结构体的一个成员。如游戏中的地图:是由若干个小方块组成,小方块的特征包括位置和角度 。因此地图的抽象结构体如下:
typedef struct DUO_MAP_ITEMTag
{
S16 rect1_x,rect1_y;
S16 angle;
}DUO_MAP_ITEM;
然后再根据此结构体定义多个地图。
2.所需变量的封装。把程序中用到的变量都用一个结构体封装起来,尽量不用全局变量。如游戏中的typedef struct
{
BOOL is_new_game;
BOOL is_gameover;
U
DUO_MAP *pMap;
U8 MapItemState[DUO_MAX_ITEM];
S32 next_rect;
S32 num_rect;
S32 start_time;
S32 timer_elapse;
S32 remain_timer;
s16 remain_rect;
}DUO_STRUCT;
其中成员包括了程序中用到的所以可能变量。
3.在程序未启动时不占用内存的方法。在程序的定义中定义DUO_STRUCT *pDuoContext = NULL; 在程序启动时再分配内存,如下所示:if( pDuoContext==NULL )
pDuoContext = (DUO_STRUCT*)gui_malloc( sizeof(DUO_STRUCT));
在退出游戏时,释放内存,这样程序就会在不用时不占用内存,节省内存空间。
4.功能与显示分开