Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86429
  • 博文数量: 53
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:01
文章分类

全部博文(53)

文章存档

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;

       U8     m_map;

       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.功能与显示分开

阅读(561) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~