标题:Flyue's游戏引擎设计方案
取消只看楼主
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
结帖率:100%
 问题点数:0 回复次数:5 
Flyue's游戏引擎设计方案
Flyue’s游戏引擎设计方案
在这个方案里我不会详细讲具体的代码,只会告诉大家在一个游戏里面需要哪些模块,具体的代码还得靠大家自己写。
每个人负责一个或多个模块,要充分利用现成的资源,所负责的模块代码要有可移植性、可重复利用;每个类的代码都要明确公有、私有和保护属性;运算速度要快,并且没有内存泄露。对负责的模块要做一个测试的程序来反复调试,直到没有问题后再交付使用。
一、引擎的基石
1.CList - 快速双向链表。除了提供链表应有的功能外,还可以排序、互换数据、枚举结点、获得指定位置的结点数据等。在后面的所有需要存储数据的地方都要用CList来存放该数据的指针。(已实现)
2.CTimer - 超高精度计时器。可以开始/停止计时、锁定帧率、计算帧率。具体用QueryPerformanceCounter实现,其精度达到了系统级。(已实现)
3.函数HitBall、HitBox分别用于碰撞球检测、碰撞盒检测。
二、引擎代码
1.CDXGraphics - 图象输出。用于管理Direct3D9数据,纹理(图片)数据和字体数据。为图象输出、文字输出提供接口,在后面的需要绘图的地方都要用此对象来绘制。(已实现)
2.CPicClip – 图象碎片管理模块。在游戏里需要把一张大的图片分割成许多小块,并为其编号。CPicClip就是用来管理这些图象碎片的。(已实现)
3.CSprite – 精灵动画。用于管理和播放帧动画。提供了添加、删除帧,绘制到屏幕、开始播放、停止播放的接口函数(已实现)
4.CSpriteManager – 精灵管理模块。用于管理游戏里的所有CSprite对象,可添加、删除、改变绘图顺序、绘制所有精灵、响应用户的消息等功能。
5.用户控件:以下所有的控件类都由CSprite派生,并可以由CSpriteManager象CSprite一样管理。每个控件类都可以设置回调函数来处理用户的操作。
CUIButton    按钮
CUIEdit        输入框
CUIScroll        滚动条
CUIForm        可拖动对象
CUIProgress    进度条
CUISlider        滑块

三、声音
1.CAudio – 用来管理背景音乐、游戏音效。可以播放、暂停、停止音乐,可以设置、获得音量。

四、游戏资源管理
1.CResManager - 资源管理模块。游戏中的资源文件(如图片、音乐等数据)都不能暴露在外面,需要把其打包,做成一个资源包。以后除了此模块之外的其他模块都不可以直接进行文件操作,都需要通过此模块所提供的读取、添加、删除、重命名、枚举存在的数据等接口来获取资源。
五、输入系统
1.CKeyboard - 键盘。管理DirectInput8键盘对象,用于检测哪些按键被按下了。
2.CMouse – 鼠标。管理DirectInput8鼠标对象,用于检测鼠标的点击、移动等事件。

测试的程序:
D3DTest.rar (509.99 KB)



[[it] 本帖最后由 flyue 于 2008-6-4 18:01 编辑 [/it]]
搜索更多相关主题的帖子: 设计方案 Flyue 游戏引擎 
2008-06-04 13:42
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
得分:0 
你向我拜倒了吗?

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-04 14:14
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
得分:0 
我恶……
做什么游戏?还没想好。燕子暑假你来不来一起开发?

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-04 17:21
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
得分:0 
要不停地改进。一个暑假完全可以做好。大家有兴趣来一起做,一人负责一个模块

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-04 17:40
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
得分:0 
是,碰撞检测技术是每个游戏不可或缺地。(除了那些“扫雷”“俄罗斯方快”等)

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-05 18:16
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
得分:0 
游戏引擎就象一个“动力装置”一样,都是抽象的,它为你的游戏提供了一切可重复使用的代码,你只要根据这个引擎就能很方便的做一个游戏。
LS问我具体什么游戏?我还没想好

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-05 20:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-217592-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065487 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved