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

原创 2006年06月19日 00:24:00

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

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

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

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

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

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

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

C#游戏开发之炸弹人游戏开发

笔者第一次发表文章,考虑不全多多包涵。也想借此机会和大家交流游戏开发。希望大神能指点一二。笔者是利用VS2010编译器,下面进入正题: 利用C#控件来实现2D游戏开发还是比较方便。先从总体上介绍炸弹人...
  • xty13145588950
  • xty13145588950
  • 2016年07月21日 22:02
  • 1298

CSAPP LAB————二进制炸弹(bomblab)

LAB3 预先准备 首先查看整个bomb.c的代码,发现整个炸弹组是由6个小炸弹(函数)组成的。整个main函数比较简单,函数间变量几乎没有影响。因此,只需要依次解除6个小炸弹即可。 所以,接下来便...
  • The_V_
  • The_V_
  • 2015年07月11日 15:42
  • 12610

逆向工程实验---二进制炸弹(CSAPP Project)

本实验设计为一个黑客拆解二进制炸弹的游戏。我们仅给黑客(同学)提供一个二进制可执行文件bomb和主函数所在的源程序bomb.c,不提供每个关卡的源代码。程序运行中有6个关卡(6个phase),每个关卡...
  • JackieFrederickHYZ
  • JackieFrederickHYZ
  • 2016年05月22日 14:54
  • 4057

C#2D游戏之炸弹人开发

  • 2016年07月21日 21:57
  • 703KB
  • 下载

unity炸弹人游戏开发

  • 2017年03月15日 10:55
  • 514KB
  • 下载

总结那些导致阻碍开发进度的小bug,小细节

细节决定成败! (一).一个大小写字母引发的一场调试 inStream = BeanFactory.class.getClassLoader().getResourceAsStream("...
  • a373503741
  • a373503741
  • 2012年04月01日 11:50
  • 540

\t\t百度邮箱 免费邮箱 最新开发进度——大家很快就可以一起high了

2007年4月3号,李彦宏的一篇博文就已经展示了百度欲开发免费邮箱的野心。原文如下:百度一直没有提供邮箱服务,主要是觉得现有的邮箱都已经足够好用了。但说实话,我还是一直用Outlook在收邮件。Out...
  • namepan1985
  • namepan1985
  • 2012年09月03日 10:54
  • 1209

软件工程文档模板系列(9)-开发进度月报

  • 2011年10月11日 19:14
  • 42KB
  • 下载

软件开发系列文档模版之(开发进度月报)

  • 2011年10月31日 16:58
  • 28KB
  • 下载

软件开发进度报告 实用!

  • 2011年04月14日 10:27
  • 141KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2006-6-19 炸弹人开发进度
举报原因:
原因补充:

(最多只允许输入30个字)