飞机的武器类型众多,大致可分为子弹、跟踪导弹和激光。子弹是直线飞行的;导弹会自动跟踪目标,可曲线飞行;而激光是一道光束,可持续地对照射到的敌机产生伤害。子弹根据一次性发射的数量,可分为单发和多发,根据子弹发射的方向可分为:自动瞄准、平行、散射。本文将结合代码讲述有关飞机武器的程序设计。
程序设计
先看一下本游戏中有关武器的类的设计 类结构 其中,BulletGroup可理解为弹匣,Bullet就是其中一颗一颗的子弹,每颗子弹都有相同的属性,包括外观、伤害值以及飞行属性。而继承自Bullet的五个子类分别为:
ScatterBullet 散弹。含单发和多发,平行和散射。
AimScatterBullet 自动瞄准子弹。继承自ScatterBullet,但是初始发射角度指向距离最近的敌机(飞行轨迹是直线,发射后不会改变方向)。
CustomBullet 可自定义每颗子弹初始的方向、速度。
Missile 跟踪导弹。顾名思义,在飞行过程中会自动改变方向,始终对准敌机,但受限于飞行速度、角速度等参数,也可能无法射中目标。
Laser 激光。一道光束,伤害值依赖于接触的时间。