注册 登录
编程论坛 C++教室

[AnyPlay游戏引擎代码] 完整源代码下载 2008.10.17 更新

flyue 发布于 2008-10-17 20:03, 4282 次点击
前言:
由于本人还是在校学生,不可能拥有一个成熟的游戏开发团队。单靠一人的力量开发游戏引擎,我有种力不从心的感觉。因此,我希望广大的网友——不论你水平如何,经验多少——都能够参与到AnyPlay游戏引擎的开发工作当中。我将陆续把游戏引擎的各个模块发布到https://bbs.bccn.net/中,希望大家共同探讨,共同进步,同时也希望让更多的人加入到开放源代码的行列!

说明:
AnyPlay是我从今年(2008年)9月开始着手的一款2D游戏引擎,目前有以下模块:

A:基本类型
1. String(字符串)
2. Color(颜色)
3. Vector(向量)
4. Rect, Quad(矩形、四边形)
5. Node(节点)

B:框架
1. Singleton(单件类,其子类对象在全局被访问,但是只能创建一个实体)
2. Application(应用程序基类,以后做游戏的游戏框架要继承这个类)
3. Event, EventSet(事件集,使用类内回调来反馈信息)
4. Logger(日志记录器,记录发出的事件并输出)

C:系统
1.渲染系统:RenderSystem 派生出 D3D9RenderSystem 和 OGLRenderSystem(尚未完成)。
2.文件系统:FileSystem 可访问磁盘上的文件和资源包(*.zip)里的文件。
3.音频系统:AudioSystem 使用开源的WMp3代码实现mp3文件以及内存中的音频流的播放。
4.输入系统:InputSystem 派生出的 APIInputSystem 通过调用WinAPI来获得鼠标、键盘的状态。
5.计时系统:Timer 使用 WinAPI “QueryPerformanceCounter” 来实现高精度计时。

D:管理器
1.RenderSystem(纹理管理器,作为渲染系统的同时也包含管理纹理的功能)
2.ImageManager(图片管理器,载入和释放图片)
3.SpriteManager(精灵动画管理器,载入和释放精灵动画)
4.SceneManager(场景管理器,管理场景内的精灵动画,并向其发出用户事件)

E:动画
1.Animation(动画基类,借鉴Adobe Flash的帧/层思想做的)
2.Image(单个图片,一个纹理内可能含有多个图片)
3.Sprite(精灵动画,派生于Animation,用来真正实现游戏动画的播放)

[bo]一个人的思维,难免会有Bug或不完善的地方,
如果你对以下代码有什么意见或建议,欢迎发帖回复,非常感谢!
我坚信,好代码是改出来的[/bo]


(恳请大家看代码的时候帮我多留个心眼,就是——找出错误或不足的地方)

TODO: 编译此工程需要安装VC6.0或VC2005等版本,并且安装了DirectX 9.0c以上的版本
目前你将看到的是一个跟随鼠标移动的图片
我将继续更新,也期待着大家不断地发现问题!
只有本站会员才能查看附件,请 登录


[[it] 本帖最后由 flyue 于 2008-10-17 20:15 编辑 [/it]]
21 回复
#2
goku_12008-10-17 20:06
学习! 下了!
#3
flying_bat2008-10-17 20:17
好的,支持下.
#4
狂神2008-10-18 09:54
#5
brokensea2008-10-20 13:55
Support!!!
#6
dexux2008-10-20 22:54
支持!!!很好,加油。
其实现在国人还不是很喜欢自己去做开源,加强自己的技术,做事业或去赚钱。
因为很多人都还是想着养家糊口,否则我们的软件或游戏都有朝一日会牛X的。

我希望自己也有朝一日投入进来。。
希望很多人加入进来。
#7
随心2008-10-21 02:41
顶下
#8
tjxix2008-10-21 10:40
虽然不懂游戏引擎
但顶一下
#9
djzlf2008-10-30 18:04
希望能有机会合作!!!
#10
danielxu2008-10-31 08:48
努力学习C++中,希望能有楼主的能力和实力。。
#11
荒野的雄狮2008-11-01 12:49
狂顶
#12
mbstorm2008-11-01 19:27
支持
#13
杨乐乐2008-11-14 20:54
#14
发呆12008-11-15 10:44
顶起来,支持开源代码
#15
beyondlwm2008-11-15 16:42
写引擎包括了巨大的工作量
我建议楼主可以找个免费引擎,利用它已经写好的框架进行修改和特化。
#16
ntmdgbhwdmm2008-11-16 13:57
好!
我也在写游戏,也难找人合作。 我用的opengl,刚学,经验不足。算是找到相同兴趣的了qq:328545080
#17
ntmdgbhwdmm2008-11-16 14:03
既然要用derect 又要用win API   不如直接用derect得了。你要的功能derect 里面有啊!
#18
eastcowboy2008-11-18 13:59
为了楼主的这个AnyPlay,我特地跑到bbs.bccn.net来看看。
今年年初的时候,我应聘失败,对自己能力产生怀疑,然后也做过一个类似的东西。大约花了五六个月的时间,当时实现了一个引用计数的智能指针,配置文件读取(ini/xml/lua),文件读取(硬盘文件/zip/mpq),参考log4j做了一个功能复杂的日志系统,用DirectShow+OpenAL做了声音,用DirectInput做了输入,图形则基本处于未动工的状态……
靠着做这个东西,我感觉自己水平有了提升,当我重新应聘那家公司时,终于成功了。现在开始加入了某个网络游戏项目,在这里我增长了一些见识,发现以前做的东西不是太理想,有点想重新做一个,不过由于工作较忙,时间上不允许了。

期待与楼主的交流。
我的邮箱:eastcowboy2002@
#19
newCpp2009-08-17 17:37
问楼主学习
#20
xyddz2009-08-26 16:17
向LZ学习
#21
yao68754822010-03-20 09:56
顶一下!
#22
何小磊2011-05-06 16:53
一定要感谢楼住,楼主现在在工作还是学校啊
1