2006-6-19 炸弹人开发进度

1.对象创建
我为什么不让游戏直接创建对象?
出于两方面考虑:
1>谁需要直接创建游戏对象?创建的游戏对象又是谁来管理?
2>又由谁来删除游戏对象?
3>这样一来C++对象的磁盘保存功能也可以在这之上复用。(这就必须用到RTTI了)

想想在炸弹人游戏中对象是怎么被删除的,大都不是由创建者删除。比如如果对象是在火焰上的话,大都是收到一个事件,
或是其它外在因素。所以并不因该由事件生成者比如人物来删除。

另外如果人物有心灵感应可以遥控引爆炸弹这种情况,直观的看就是人物只是通知了一下炸弹某个事件而已。
也不存在对象源生产者(人物)直接删除产生的对象(炸弹).

还有就是如果对象的创建与删除都是在同一个地方做的话,就可以自已管理生成对象的内存区域,而不必为每个产生的对象都分
配内存空间。

所以对象的具体创建只是相关的管理代码的活,并不是我们游戏逻辑的代码。

2.ID管理器
因为我以后需要加入连网功能,
所以游戏对象的操作使用ID,而不是指针。
如果使用ID,我也不希望对性能造成太大影响,所以我也就没有使用map。直接使用C的数组。
ID引用计数的目的是防止在还有人引用着某个ID,但这个ID却被重分配了(不只是释放哦)。然后引用的对象就会用了错误的的ID。

结论:
1.对象创建与删除,不管是从磁盘上读取的数据,还是代码内部产生的对象.统一使用一个接口CGameFactory.
2.所有对象都有个在唯一不重复的整数ID,并且用该ID就是C数组的下标(效率)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值