登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
  立华软件园 - 安全技术中心 - 技术文档 - 入门基础 技术文章 | 相关下载 | 电子图书 | 攻防录像 | 安全网站 | 在线论坛 | QQ群组 | 搜索   
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
 其他安全技术资源
  · 攻防演示动画
  · 电子图书
  · QQ群组讨论区
  · 其他网站资源
最新招聘信息

制作手札---RPG是怎样做成的 (二)
发表日期:2007-01-17作者:[转贴] 出处:  

三月二十七日 星期六:系统分析

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

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

相信大家对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=打斗),消息处理系统收到这个消息后就会马上转到打斗模块中去。

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

消息处理的大体框架如下:

 

//首先定义一些消息:

#define 行走 1 //行走消息定义为1

#define 打斗 2 //打斗消息定义为2

#define 对话 3 //对话消息定义为3

#define 升级 4 //升级消息定义为4

#define 事件 5 //事件消息定义为5

#define 结束 6 //结束消息定义为6

……

//定义程序中要用到的变量

DWORD Message; //消息变量

Role_Struct Hero; //定义小飞刀的属性结构

Map_Struct Map; //定义地图的属性结构

……

WinMain() //进入程序

{

初始化主窗口;

初始化DirectDraw环境,并调入程序需要的图形、地图数据;

while( 1 ) //消息循环

{

switch( Message )

{

case 行走: 行走模块();

case 打斗: 打斗模块();

case 对话: 对话模块();

case 事件: 事件模块();

case 退出: 退出游戏();

}

}

}

OK!我们的程序框架已经出来了,这时你心中也一定有了一个相当清晰的轮廓吧!好了,到目前为止该游戏的整体规划也就可以告一段落了,今后几天的工作重心将转到具体模块的实现方法了。可要加油哦^_^

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 制作手札---RPG是怎样做成的 (二)

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00207