0

好吧,在考虑了我在太空入侵者游戏的类图 v1 和 v2 上得到的所有有用评论后,我再次更新了我的类图以实现所有更改。

事不宜迟,我介绍 v3:

太空侵略者架构 V3.0

抽象Bullet类中的 Move 和 Update 方法什么都不做,方法的实现在从 bullet 继承的具体类中。这些具体类中的每一个也将继承IMovable接口的 Speed 属性,并且每个都有自己的速度集。整个抽象的Bullet类及其具体的类派生是策略模式。

我想问一些事情:ShipInvader类一次只能有一颗子弹 - 但Invader类也可以没有子弹。例如,当所有的外星人都完好无损时,只有第一排的外星人可以发射子弹。他们上方的行无法射击。但是我将如何在Invader类中实现这一点?无法射击的入侵者的Invader类中的子弹变量应该设置还是保留为null?还是有更好的选择?

我希望我越来越接近获得正确的设计,欢迎您的所有意见!

4

1 回答 1

0

看起来整个设计可以折叠成以下抽象:

s

我不确定这是否足以说明您的游戏实施。Duke Nukem 3D 也是精灵的集合,它们之间具有某种组合关系。这是否意味着您的设计与 Duke Nukem 3D 相同?我个人觉得该图缺乏完整性和清晰度。“游戏板”呢?它如何与 Sprite 交互?物理引擎呢?

只是留给你一些思考。祝你好运!

于 2011-02-22T17:13:07.040 回答