我需要一些帮助来计算我正在使用 JavaScript 开发的游戏的类层次结构。该游戏是一款自上而下的太空射击游戏,具有(在其基本级别上)背景、玩家、子弹和敌人。
我想出了一个我认为需要改进的类图:
这里没有什么特别之处,主类称为 Cosmos(游戏名称),它有一个 tick()
方法,每秒大约触发 60 次。 Background
、Player
和 Enemy
类属于 Cosmos
而 Bullet
类属于到 Player
类,因为 Player
“拥有”Bullet
。
虽然这张图让我想到了一个主要问题,那就是我将如何在玩家子弹和敌人之间进行碰撞检测。我可以在 Player
类中编写一个方法,将子弹的 x
和 y
传递给 Cosmos
并进行碰撞在 Cosmos
中检测,但这似乎不是最好的方法。如果我想要一种简洁、有组织的方法,在 Cosmos
中进行碰撞检测是否可以?
我们也非常感谢您为让我的生活更轻松而做出的任何其他修改。
最佳答案
您的图表似乎有一些问题。你写道:
The Background, Player and Enemy classes belong to Cosmos and the Bullet class belongs to the Player class, because a Player "owns" Bullets."
这表明聚合或复合关系,但在您的图表中您使用了继承箭头...您有 Player
扩展 Bullets
,并且在 Cosmos 上有多重继承
,它扩展了 Player
、Background
和 Enemy
。另外,您的图表是颠倒的;通常基类位于顶部。
如果你想使用继承链,考虑这样的事情:
关于javascript - 在 JavaScript 游戏中组织类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315237/