1

我需要一些帮助来确定我正在使用 JavaScript 开发的游戏的类层次结构。该游戏是一个自上而下的太空射击游戏,具有(在其基本级别)背景、玩家、子弹和敌人。

我想出了一个我认为需要改进的类图: 类图

这里没有什么不寻常的地方,主类叫做 Cosmos(游戏的名称),它有一个tick()每秒触发大约 60 次的方法。和类属于,Background类属于类,因为一个“拥有” s。PlayerEnemyCosmosBulletPlayerPlayerBullet

不过这张图有一个主要问题,那就是我将如何在玩家的子弹和敌人之间进行碰撞检测。我可以在类中编写一个方法Player来传递子弹xyCosmos中进行碰撞检测Cosmos,但这似乎不是最好的方法。Cosmos如果我要采用一种整洁、有组织的方法,那么进行碰撞检测会好吗?

您可以进行的任何其他修改以使我的生活更轻松也非常感谢。

4

2 回答 2

2

您的图表似乎有一些问题。你写了:

Background、Player 和 Enemy 类属于 Cosmos,Bullet 类属于 Player 类,因为玩家“拥有”子弹。

这表明聚合或复合关系,但在您的图表中,您使用继承箭头......您有Player扩展Bullets,和多重继承Cosmos,扩展PlayerBackgroundEnemy。此外,您的图表是颠倒的;通常基类位于顶部。

如果您想使用继承链,请考虑这样的事情:

图表

于 2013-03-10T00:42:50.190 回答
1

这项工作似乎太小了,不能过多地担心阶级层次。

在任何情况下,Java 风格的类只是分离代码的一种方式,保持合理的顺序和适当的注释几乎可以做同样的事情。

总之,直接把Bullets放在Cosmos下面,没什么大不了的。

于 2013-03-09T20:30:06.253 回答