在这种情况下,我正在开发2D游戏。在这个游戏中,我需要很少的导弹类型从天空坠落作为炸弹人。与我的角色碰撞时,每种导弹类型都会根据导弹类型伤害到一定数量的伤害。
我该怎么办?
选项1:创建一个单独的导弹,其中包含一个具有自己的导弹类型的变量,并且在碰撞的检查循环中我使用Switch来决定伤害。
选项2:创建几个类,然后制作相同数量的导弹碰撞检查循环,避免使用开关,知道每个循环中的损坏。
选项3:创建一个带有所有导弹的单一检查循环,并使用遗传来区分导弹
选项4:不要保存导弹类型,而是用它们的损坏初始化导弹,以及对同一导弹类型相同的其他许多变量(浪费内存)
如果选项3不存在,选项1或2?
由于
答案 0 :(得分:1)
你有一个具有伤害变量的导弹类。 所有其他类型的导弹都延伸到这一类。因此,您可以根据需要添加其他信息字段。
所以当你遍历所有导弹类时。你可以将它们投射到(导弹),然后评估那个变量。
答案 1 :(得分:0)
这实际上取决于每种导弹类型的不同以及您对未来的计划。如果所有类型都在那里,你不打算添加更多类型,并且类型之间唯一不同的是它们的损坏量,我会选择切换。但是,为了更容易扩展以及为超出损伤量的每种导弹类型建模不同的行为,我将创建一个基类并为每种类型继承一个新类,允许您重载像getDamage()
这样的方法或每种导弹类型updateMovement()
。
答案 2 :(得分:0)
为每个Missle
子类提供一个计算损害的方法,并采用它需要的任何参数。为每个目标提供applyDamage
(或仅damage
)方法,该方法会对目标施加指定数量的伤害。
首选多态切换。
首选将方法分解为一小部分连贯的任务。