开发环境:windows10
,jdk11
编译器:IDEA
基础:oop面向对象(类、继承、多态、抽象)
配置常量类:com.areco.plane.tools.Config
辅助工具类:com.areco.plane.tools.GameTools
使用方向键
或鼠标控制
飞机移动
使用a
键或s
或d
键开火
a
键释放导弹,在第一关的伤害为13
s
键释放机枪,每颗子弹伤害为1
d
键释放激光,具有穿透效果,每秒伤害60
使用 f
释放大招,释放大招时玩家无敌,释放完毕后武器冷却5秒
BOSS在场上有其他敌机时是无敌状态,即没有出现血条时是无敌状态
玩家被子弹击中则无敌500毫秒
玩家的子弹射击频率限制为200毫秒
,每种武器的攻击频率都不一样
高智商敌机的出现概率为1/3
BOSS为高智商机,会跟踪玩家,有时又会随机移动
并且会有针对性的跟踪子弹,大型子弹攻击力为5
当进入BOSS战时玩家被击中后的无敌时间降为200毫秒
awt
类- 文件流
- 音乐播放
- 绘图方法
- 窗口组件
- 线程
jl1.0.1.jar:Java 工具库,用以播放声音
第一步: 画出游戏主界面
第二步: 游戏背景图画到主界面
- 建立一个工具类读取文件
- 加载图片
- 绘制地图
- 让地图动起来
第三步: 绘制玩家飞机
- 给玩家飞机添加火焰
- 给玩家添加键盘事件
- 添加子弹(导弹
a
,机枪s
,激光d
)
第四步: 创建敌机
- 随机产生指定配置的敌机
- 判断当敌机数量小于指定值时候自动添加新的敌机
- 创建敌机弹花
第五步:消灭敌机
- 通过坐标
x
,坐标y
,宽度width
,高度height
- 判断我方子弹区域与敌机区域重合.
- 可通过字段内缩敌机判定区域.
第六步:我方飞机被击中的判定
- 通过坐标
x
,坐标y
,宽度width
,高度height
- 判断敌方子弹区域与玩家机区域重合.
- 可通过字段内缩敌机判定区域.
第七步:优化完善
- 添加高智商飞机
- 根据我方飞机坐标进行针对性移动
- 通过变量控制高智商飞机的数量
- 添加分数与血量显示
- 添加被击败时的选项:
重新开始
,退出游戏
- 添加被摧毁后的爆炸效果,玩家被摧毁后等待爆炸完毕再弹出选项
- 添加血量过低后变色
- 为激光,导弹,机枪,爆炸添加声音,添加循环播放的背景音乐
- 当运行游戏后,鼠标将被定位到指定位置,并隐藏鼠标指针
- 限制玩家开火间隔,设置玩家被击中后的无敌时间
- 修改血量条的显示方式,当血量变化时渐变式变化
- 为玩家飞机添加大招按键
f
,添加大招子弹 - 添加能量条,渐变式更改,释放大招时得到的能量将被缓冲,在大招结束后重新加上
- 屏蔽玩家释放大招时的所有开火,并且大招释放完毕后有冷却时间
- 抽出多个常量,自定义参数
- 为敌机BOSS添加无敌,当场上有除BOSS以外的敌机时,BOSS无敌
- 玩家发动大招时给玩家一个无敌
- 玩家大招后进入无法攻击的冷却阶段时进行屏幕提示
第八步:关卡系统
- 添加5个关卡
- 添加5个关卡boss,boss将在每个关卡各自指定的时间出现,出现后将不会出现其他敌机
- 为boss绘制不同的子弹类型
- 其中将绘制随机运动型子弹,跟踪型子弹,加强跟踪型子弹
- 每过一关玩家开火间隔降低,打boss时玩家的无敌时间降低
- boss被击败后进入下一个关卡,并奖励20分
- 根据关卡的不同绘制不同的敌机,血量增加,攻击欲望增加,数量增加