2006-6-19 炸弹人开发进度
来源:互联网 发布:java多线程锁机制 编辑:程序博客网 时间:2024/06/15 20:42
1.对象创建
我为什么不让游戏直接创建对象?
出于两方面考虑:
1>谁需要直接创建游戏对象?创建的游戏对象又是谁来管理?
2>又由谁来删除游戏对象?
3>这样一来C++对象的磁盘保存功能也可以在这之上复用。(这就必须用到RTTI了)
想想在炸弹人游戏中对象是怎么被删除的,大都不是由创建者删除。比如如果对象是在火焰上的话,大都是收到一个事件,
或是其它外在因素。所以并不因该由事件生成者比如人物来删除。
另外如果人物有心灵感应可以遥控引爆炸弹这种情况,直观的看就是人物只是通知了一下炸弹某个事件而已。
也不存在对象源生产者(人物)直接删除产生的对象(炸弹).
还有就是如果对象的创建与删除都是在同一个地方做的话,就可以自已管理生成对象的内存区域,而不必为每个产生的对象都分
配内存空间。
所以对象的具体创建只是相关的管理代码的活,并不是我们游戏逻辑的代码。
2.ID管理器
因为我以后需要加入连网功能,
所以游戏对象的操作使用ID,而不是指针。
如果使用ID,我也不希望对性能造成太大影响,所以我也就没有使用map。直接使用C的数组。
ID引用计数的目的是防止在还有人引用着某个ID,但这个ID却被重分配了(不只是释放哦)。然后引用的对象就会用了错误的的ID。
结论:
1.对象创建与删除,不管是从磁盘上读取的数据,还是代码内部产生的对象.统一使用一个接口CGameFactory.
2.所有对象都有个在唯一不重复的整数ID,并且用该ID就是C数组的下标(效率)
- 2006-6-19 炸弹人开发进度
- 2006-05-07(炸弹人开发进度)
- 2006_6_24炸弹人开发进度
- 2006_09_18炸弹人开发进度
- 2006-04-19炸弹人开发日志
- 2006-03-20炸弹人开发日志
- 2006-03-23炸弹人开发日志
- 2006-03-26(炸弹人开发日志)
- 2006-4-12(炸弹人开发日志)
- 2006-4-14(炸弹人开发日志)
- 2006-04-18炸弹人开发日志
- 2006_07_16炸弹人开发日志
- 2006_07_17炸弹人开发日志
- 2006_07_27炸弹人开发日志
- 2006_7_30炸弹人游戏开发日志
- 2006_07_31炸弹人开发日志
- 2006_08_25炸弹人开发日志
- 2006_08_26炸弹人开发日志
- 页面模板的标记封装
- 很久很久以前写的汇编代码 想写病毒一直没时间完成(少网络传播模块 与 线程附加模块)
- 男孩看了会领悟,女孩看了会感动的分手理由
- F1 Melbourne
- 西藏前三天
- 2006-6-19 炸弹人开发进度
- Delphi 中的自定义类笔记(一)
- 小组成员终于可以大力挺进了。
- 理解'位域'
- 球馆
- Torque的VS2005编译 (compiling Torque by VS2005)
- 在DELPHI程序中自动设置ODBC数据源
- JAVA正则表达式详解
- How to setup OpenCV(referring to harvard university's wiki)