游戏开发入门(四) 

2007-04-01 11:20 发布

1684 0 0
二、推荐使用第二种方法:只造一个图片管理模块,将所有的图片(动画图片可以除外),包括提示图像、人物、物品、地图及其它图像均放于一个图片库中。好处是减少了图片控制模块,而且一个图片可以供多个模块调用。
动画控制:很好理解的,控制动画的吗!
地图控制:一定要注意,这一模块只负责管理地图库、组建地图,但并不负责显示地图。
人物管理:管理每个人物的信息(不包括对话信息)。
物品管理:管理每个物品的信息。
音乐管理:管理所有的音乐及其播放,音乐文件一般使用MIDI格式,如果你水平高点可以使用MP3格式。
声音管理:管理所有的声音及其播放,声音文件是WAV和VOC格式任选。
剧情控制:最大、最难、最复杂的一个模块。管理其它的全部模块,负责整个游戏的剧情发展。
战斗控制:负责站斗啦!
自己用的工具吗,介绍一下:
图片管理器:负责管理图片库,要求可以随意加入、删除图片,为图片库建立索引以便游戏调用。
地图编辑器:编辑地图用的吗!用它来造地图,然后形成专用的文件格式。
动画编辑器:造动画用的,如果懒的造动画那就算了。
人物信息管理器:编辑人物信息的工具。
物品信息管理器:编辑物品信息的工具。
剧情脚本编辑器:又是最大、最难、最复杂的一个,用来编写剧情文件用的。
音乐管理器:管理音乐库的工具。
声音管理器:管理声音库的工具。
 看完了,是不是要趴下了!没事,慢慢来吗!一个人造个游戏最快也要2年!
程式设计三──显示方面的程式设计
  上一章里,我们说明了作为一个游戏的程式设计所需要完成的工作。在这一章,我们将有关图形方面的程式设计内容详细给大家说一下。
  首先申明一下,无论您的游戏采用那一种清晰度,本文所说的内容都适用于您。
  一、2D驱动程序
  如果是编写Windows9x下游戏的话,2D显示驱动程序的代表作主要有Microsoft公司推出的DirectX中的DirectDraw和SciTech公司的WinDirect、MGL。
  在DOS 下就显得有些问题,现在市面上的显示卡类型非常多,如果我们给每一个显卡都编写一个驱动程序的话,那恐怕是相当困难的。再说我们也不可能拥有每一种显卡的详细资料。幸好在各种SVGA显示卡出现不久,由各大厂家联合推出了一个VESA标准。现在的显卡几乎可以说是全部都只持VESA标准。所以,我们只要按VESA标准进行显示卡编程,就可以获得最大的兼容性。
  二、3D驱动程序
  编写3D游戏的话,3D驱动程序接口无非就是OpenGL和Direct3D两种。如果你想编写Windows下的游戏的话,那么选择哪一个都一样。如果编写DOS游戏的话,使用OpenGL当然不会错。
注:由于3D游戏所涉及的范围较大,所以在以后我们将不讨论3D游戏的制作。
(到SciTech公司的网页上去转转,这个公司提供的WinDirect、MGL开发库提供了完整的2D与3D支持DOS/Windows9x,而且还提供了DOS下的OpenGL 3D引擎)注:MGL开发库同时有DOS版和Windows9x版。
  三、无规则图片库的管理
  这里所说的图片库包含了整个游戏所使用到的任何图片,想必您也可以猜到,这个图片库将会变得相当大。如何管理这样一个数据量极大的图片库,成了现在的首要问题。
  游戏中所使用的图片有大有小,也就是说,图片库中的图片数据长度不固定。这也为我们管理图片库增加了难度。
  图片管中的图片位置是无规律的,但是我们可以建立一个有规律的索引表来管理这个图片库。因为每个图片的索引长度是一样的,也就是说是有规律的。这样一来,管理就容易多了。
  索引文件的基本结构如下:
文件头,图片个数,第1个图片在图片库中的地址,……,最后一个图片在图片库中的地址
  图片库的基本结构如下:
文件头,第1个图片的数据,……,最后一个图片的数据
  然而,就算是这样,整个图片库的管理仍然不方便。比如说有一张图片的编号是105,而在中途我们删除了第85张图片。当下次再调用第105张图片时,就会发现调用的是原来的第106张图片。为了解决这个问题,我们将索引文件的结构改进如下:
索引结构:
struct PicIdx
{
char PicName[10]; //图片名称
unsigned int high,width; //图片大小
unsigned long offset; //图片在图片库中的地址
};
图片索引文件结构:
文件头,图片个数,第1个索引(PicIdx),……,最后一个索引(PicIdx)
  可以看出,我们为索引增加了一个项目:图片名称。这样做的好处是,我们在调用图片时,可以按图片名称进行调用。以后无论是增加还是删除图片库中的图片,都可以保证图片调用正确。
  四、有规则图片库的管理
  有规则图片库相对于无规则图片库来说管理起来就要方便的多了。这里说的有规则是说每一个图片的大小都一致,也就是说数据长度都一致。这样的图片库最点型的就是人物图片库,以人物图片库为例,图片索引文件结构如下:
文件头,图片个数,第1个人的姓名,……,最后1个人的姓名
  五、对话框的处理
  在游戏中,对话框是少不了的,特别是角色扮演型游戏。对话框的主要类型有:菜单、信息显示框、逻辑选择框、多项选择框、买卖物品框、人物信息框等等。在这一点上,设计者可以按自己的意欲随意设计。不过要注意的是风格要保持一致。
  从下一章开始,将细致讲述有关显示方面的程式设计,分别是《图片库的压缩保存》、《虚拟屏幕的编程》、《地图引擎的制作》、《屏幕特殊效果的处理方法》。
程式设计四──图片库的压缩保存
  我们知道,随着游戏画面清晰度的不断提高,游戏所占用的硬盘空间也在不断增大。为此,我们有必要将有些大容量的数据做压缩保存,图片库就是一个很好的例子。
  首先要谈到的就是压缩算法问题,现在的压缩算法很多,选择那一种好呢?大家一定会想到在网页上常用到的JPEG格式和GIF格式,但是这两种算法都不适合在游戏中使用。就游戏开发来说,我们必须选择一种压缩率高、解码速度又快的算法。如果采用JPEG无损压缩算法,那么压缩率就不高,采用有损压缩的话虽然压缩率很高但在游戏中图像是不能有所损坏的。还有,JPEG算法的一个最大缺点就是解码速度太慢。GIF算法性能很高,压缩率高解码又快,只可惜它不能压缩超过256色的图像。但如果您做的游戏是256色的话,那么使用GIF算法是再好不过的了。
  如果您的游戏画面采用了真彩色或您想将图像压缩的再好一点,那么无疑您得自己研制一套压缩程序。这里,我为大家提供了两个方案:
  方案一:采用LZSS或LZH压缩算法。
  方案二:使用它方提供的压缩程序。这个程序是本人在网络上无意发现的,使用非常方便,而且它不是压缩文件而是压缩内存中的数据又存放在内存中,所以非常适合在游戏中使用。唯一的缺陷就是压缩率不是非常高。
  以上两方案的源程序和开发包均可在资源下载处下载,方案二开发包名称为DCL压缩软件开发包。
[em01]
TA的作品 TA的主页
B Color Smilies

你可能喜欢

游戏开发入门(四) 
联系
我们
快速回复 返回顶部 返回列表