2

我是stackover的新手,这是我第一次发帖,所以请温柔:-)

我正在开发一个多层次的射击游戏,并且我正在质疑针对我的目的最好的 OOP 设计,明确地管理子弹。

一般来说,游戏有多个玩家和多个敌人,每个人都有一把可以发射子弹的枪。有一些子弹类可以很好地管理多个子弹,它们的位置、动画、渲染等,这些都可以正常工作。

我的问题是,我是最好为每个敌人实例化这些子弹类的实例,还是最好为管理所有子弹的关卡实例化一个实例(不管是谁发射的)?

单个实例的好处是子弹管理和渲染可以同时针对它们进行优化,但是它们需要额外的状态信息,以便我们记住哪些子弹属于谁,每个敌人可以存在多少子弹等,并且没有那么松散耦合。每个敌人一个单独的实例的好处是它更整洁,每个子弹需要存储的状态信息更少,但是它们将在每个敌人或玩家的单独调用中进行管理和渲染。子弹间的碰撞也将被证明更加困难,但幸运的是这不是这个特定游戏的要求。

有没有其他人写过类似的东西,你是如何构建它的?在决定之前我应该​​考虑哪些因素,是否有任何游戏设计原则?

问候尼克

4

1 回答 1

0

对于一般游戏结构,您可能需要阅读


这可能是我个人的见解,但我认为子弹的全级别处理程序应该更加通用。当玩家射击子弹时,它会向 Bullet-handler 对象发送一个信号,并将子弹计数减一。子弹必须存储哪个玩家射击它,因此您可以回顾哪个玩家射击了哪个玩家,或增加统计数据。更不用说一个级别范围的子弹处理器可以在以后扩展以处理手榴弹、地雷、爆炸的火药填充的狂暴黄鼠狼或诸如此类的东西。

于 2013-01-05T12:36:41.533 回答