Skip to content

acteds/LeiTingZhanJi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

项目名称:雷霆战机

开发环境:windows10,jdk11
编译器:IDEA
基础:oop面向对象(类、继承、多态、抽象)
配置常量类:com.areco.plane.tools.Config
辅助工具类:com.areco.plane.tools.GameTools

游戏说明:

使用方向键鼠标控制飞机移动
使用a键或sd键开火
a键释放导弹,在第一关的伤害为13
s键释放机枪,每颗子弹伤害为1
d键释放激光,具有穿透效果,每秒伤害60
使用 f 释放大招,释放大招时玩家无敌,释放完毕后武器冷却5秒
BOSS在场上有其他敌机时是无敌状态,即没有出现血条时是无敌状态

默认设置:

玩家被子弹击中则无敌500毫秒
玩家的子弹射击频率限制为200毫秒,每种武器的攻击频率都不一样
高智商敌机的出现概率为1/3
BOSS为高智商机,会跟踪玩家,有时又会随机移动
并且会有针对性的跟踪子弹,大型子弹攻击力为5
当进入BOSS战时玩家被击中后的无敌时间降为200毫秒


使用的基本方法

  1. awt
  2. 文件流
  3. 音乐播放
  4. 绘图方法
  5. 窗口组件
  6. 线程

使用的库

jl1.0.1.jar:Java 工具库,用以播放声音


项目构建

第一步: 画出游戏主界面
第二步: 游戏背景图画到主界面

  1. 建立一个工具类读取文件
  2. 加载图片
  3. 绘制地图
  4. 让地图动起来

第三步: 绘制玩家飞机

  1. 给玩家飞机添加火焰
  2. 给玩家添加键盘事件
  3. 添加子弹(导弹a,机枪s,激光d)

第四步: 创建敌机

  1. 随机产生指定配置的敌机
  2. 判断当敌机数量小于指定值时候自动添加新的敌机
  3. 创建敌机弹花

第五步:消灭敌机

  1. 通过坐标x,坐标y,宽度width,高度height
  2. 判断我方子弹区域与敌机区域重合.
  3. 可通过字段内缩敌机判定区域.

第六步:我方飞机被击中的判定

  1. 通过坐标x,坐标y,宽度width,高度height
  2. 判断敌方子弹区域与玩家机区域重合.
  3. 可通过字段内缩敌机判定区域.

第七步:优化完善

  1. 添加高智商飞机
  2. 根据我方飞机坐标进行针对性移动
  3. 通过变量控制高智商飞机的数量
  4. 添加分数与血量显示
  5. 添加被击败时的选项:重新开始,退出游戏
  6. 添加被摧毁后的爆炸效果,玩家被摧毁后等待爆炸完毕再弹出选项
  7. 添加血量过低后变色
  8. 为激光,导弹,机枪,爆炸添加声音,添加循环播放的背景音乐
  9. 当运行游戏后,鼠标将被定位到指定位置,并隐藏鼠标指针
  10. 限制玩家开火间隔,设置玩家被击中后的无敌时间
  11. 修改血量条的显示方式,当血量变化时渐变式变化
  12. 为玩家飞机添加大招按键 f ,添加大招子弹
  13. 添加能量条,渐变式更改,释放大招时得到的能量将被缓冲,在大招结束后重新加上
  14. 屏蔽玩家释放大招时的所有开火,并且大招释放完毕后有冷却时间
  15. 抽出多个常量,自定义参数
  16. 为敌机BOSS添加无敌,当场上有除BOSS以外的敌机时,BOSS无敌
  17. 玩家发动大招时给玩家一个无敌
  18. 玩家大招后进入无法攻击的冷却阶段时进行屏幕提示

第八步:关卡系统

  1. 添加5个关卡
  2. 添加5个关卡boss,boss将在每个关卡各自指定的时间出现,出现后将不会出现其他敌机
  3. 为boss绘制不同的子弹类型
  4. 其中将绘制随机运动型子弹,跟踪型子弹,加强跟踪型子弹
  5. 每过一关玩家开火间隔降低,打boss时玩家的无敌时间降低
  6. boss被击败后进入下一个关卡,并奖励20分
  7. 根据关卡的不同绘制不同的敌机,血量增加,攻击欲望增加,数量增加

演示视频

演示视频链接

About

飞机小游戏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages