javascript - 在 JavaScript 游戏中组织类

标签 javascript organization class-diagram

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

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

这里没有什么特别之处,主类称为 Cosmos(游戏名称),它有一个 tick() 方法,每秒大约触发 60 次。 BackgroundPlayerEnemy 类属于 CosmosBullet 类属于到 Player 类,因为 Player“拥有”Bullet

虽然这张图让我想到了一个主要问题,那就是我将如何在玩家子弹和敌人之间进行碰撞检测。我可以在 Player 类中编写一个方法,将子弹的 xy 传递给 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 上有多重继承,它扩展了 PlayerBackgroundEnemy。另外,您的图表是颠倒的;通常基类位于顶部。

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

diagram

关于javascript - 在 JavaScript 游戏中组织类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315237/

相关文章:

uml - 将数组放入 UML 图中的正确方法?

javascript - 组织 JavaScript 函数和文件的最佳方式?

reusability - 你如何组织你的代码库?

javascript - 扩展类或创建新函数,哪个更好?

javascript - 使用 Jquery 编辑类

javascript - 编写重复函数的优雅方式

object - 类位于另一个类的属性隔间中

uml - 类图 UML

javascript - 如何递归生成斐波那契数列数组?

javascript - 当窗口等于 div 时显示 div,但当窗口超过 div 时隐藏