系统分析(一)

“系统分析”如此专业的词汇可能会立刻吓退一大片人,我当初也是如此!不过只要你认真读完下面的文字,也许你会说一声:‘系统分析’也不过如此嘛!

顾名思义‘系统分析’就是对整个游戏系统的规划,自顶向下的将它细化成一个个可由程序实现的模块;然后再把各个模块细化成一条条的语句。如此一来,写程序时就可以有条不紊,不会再像以前那样想到哪儿写到哪儿了。

相信大家对RPG都是非常熟悉的,通常的RPG按功能可分为:消息处理系统、场景显示及行走系统、打斗系统、升级系统、对话系统事件处理系统六大部分。其中又以消息处理系统走为核心模块,其余五部分紧紧围绕它运行。我的系统分析报告如下:

《英雄救美》系统分析记录

名称:英雄救美

中文RPG

硬件要求:PENTIUM 100以上CPU16M内存、SVGA、键盘、声卡(可选)。

软件平台:Windows 95/98/NTDirextX 5.0以上

开发环境:VC++5.0DirectX SDK

剧本:略(参见上文)

模块分析:

  1. 消息处理(核心)

  2. 场景显示及行走

  3. 打斗

  4. 升级

  5. 对话

  6. 事件处理

流程图:

(注:各个模块的具体实现略)

在这里并没有把每个模块的具体实现方法写出来,因为我认为把大量细节上的东西一股脑的堆在面前,实在是太枯燥了。为了不让你失去耐性,我决定还是把这些东西留到具体实现的时候来讲,也许这样会较生动而利于理解一些。

利用今天剩下的时间,我建立了两个非常重要的数据结构:‘角色’和‘地图‘的属性类结构。

//*********角色属性结构**********

typedef struct{

char Name[32]; //角色名称

int Width,Hight; //角色大小

int x,y; //当前坐标

int old_x,old_y; //旧的坐标

int Way; //方向

int Stats; //状态

int Level; //等级

int Exp; //经验

int Lift; //生命

int MaxLift; //生命最大值

int Attack; //攻击

int Defend; //防御

int Speed; //速度

char Goods[10]; //物品(最多可带10件)

}Role_Struct;

//*********地图结构**********

typedef struct{

char Name[32]; //名字

int Width; //

int Hight; //

char Ground; //地面材料

char res[7]; //保留

unsigned short *Data; //数据

}Map_Struct;

将同一事物的属性归在一起,使程序清晰易读,有利于我们方便的管理数据、把握大局;更是顺应了当今面向对象的程序设计思路。

三月二十八日 星期天:消息处理系统

今天的任务非常明确,就是搭起游戏的筐架(即建立游戏的消息处理系统)。

我们的这个消息处理系统和Windows的消息处理机制其实非常相似,都是先等待消息,然后根据收到的消息转到相应的函数进行处理。所不同的是Windows 接收的消息大多是系统或是用户输入产生的,而我们的消息都是自定义的,如:小飞刀在森林中行走时碰到了强盗,那么我们就让程序产生‘打斗消息’(即:Message=打斗),消息处理系统收到这个消息后就会马上转到打斗模块中去。

不要把消息处理想的太复杂,打个简单的比方:假如你是一位接线员,在你前面的桌上有很多部电话,那么你要做的是:有电话响时就接电话,没有电话响时就什么都不做。是不是很简单!其实消息处理也就是这个道理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值