在JavaScript游戏中组织类

时间:2013-03-09 19:57:29

标签: javascript organization class-diagram

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

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

这里没有什么不寻常的,主要的类叫做Cosmos(游戏名称),它有一个tick()方法,每秒大约发射60次。 BackgroundPlayerEnemy类属于CosmosBullet类属于Player类,因为Player }“拥有”Bullet s。

虽然这个图表有一个主要问题,但这就是我将如何在玩家子弹和敌人之间进行碰撞检测。我可以在Player类中编写一个方法,将子弹的xy传递给Cosmos并在Cosmos中进行碰撞检测,但这并不是'似乎是最好的方法。如果我想采用一种整洁,有组织的方法,那么Cosmos中的碰撞检测是否可行?

为了让生活更轻松,您可以做出的任何其他修改也非常感激。

2 个答案:

答案 0 :(得分:2)

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

  

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

这表示聚合或复合关系,但在您的图表中,您使用继承箭头... Player扩展Bullets,并在Cosmos上进行多重继承,扩展Player 1}},BackgroundEnemy。此外,您的图表是颠倒的;一般来说,基础课程排在最前面。

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

diagram

答案 1 :(得分:1)

这项工作似乎太小了,不用担心类层次结构。

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

简而言之,只需将子弹直接放在宇宙之下,就没什么大不了的了。