好吧,考虑到我在太空入侵者游戏的类图的v1和v2上得到的所有有用的评论,我再次更新了我的类图以实现所有更改。
没有进一步的麻烦,我提出了v3:
抽象 Bullet 类中的Move和Update方法无效,方法的实现位于继承自bullet的具体类中。这些具体类中的每一个也将从 IMovable 接口继承Speed属性,并且每个类都有自己的速度集。整个抽象的 Bullet 类及其具体的类派生词是策略模式。
我想问的一些事情:发货和 Invader 类一次只能有一个项目符号 - 但 Invader 类可以也没有子弹。这是例如当所有外星人的行仍然完好无损时,只有第一排外星人可以发射子弹。它们上方的行无法拍摄。但是我如何在 Invader 类中实现它?如果无法射击的入侵者的入侵者类中的子弹变量被设置或保留为空?或者有更好的选择吗?
我希望我越来越接近正确的设计,欢迎你的所有评论!
答案 0 :(得分:0)
看起来整个设计可以折叠成以下抽象:
我不确定这是否足以推断您的游戏实施。 Duke Nukem 3D也是精灵的集合,它们之间有某种组合关系。这是否意味着您拥有与Duke Nukem 3D相同的设计?我个人认为图表缺乏完整性和清晰度。那么“游戏板”呢?它如何与Sprites互动?物理引擎怎么样?
给你留下一些思考的食物。祝你好运!