飞机大战项目 对接多线程

Swing 是一个用于 Java GUI 编程(图形界面设计)的工具包(类库

逻辑是:

碰撞发生后子弹、炸弹、血包均消失,战机生命值减一,敌机和Boss生命值减少当前战机炮弹威力的生命值,
若敌机或Boss生命值归零,则删除敌机或Boss。
血包会在客户区矩形框内运动,10秒后消失;若战机在10秒内吃到血包,则会增加5点生命值知道生命值上限。

每关中战机有三条命,每条命10点生命值

游戏提供10个关卡,每个关卡需要打死相应关卡的敌机数量才能进入Boss模式,打败Boss之后将会进入下一关。

10关通关后,显示通关界面,并提供重新开始游戏和退出游戏的功能选项。



前五关卡敌机从上方飞出,速度一定,战机每打掉一架敌机则增加一分,
当战机得分超过该关卡所需分数(和关卡数相关)则可进入Boss模式,打败Boss进入下一关;

进入第六关以后,敌机分别从上下两方飞出。随着关卡数增加,敌机数量增加,速度增快,敌机炮弹数量和速度也相应增加,进入Boss所需分数增加,Boss生命值和火力也随着关卡数的增加而增加,游戏难度陡然直升。





(8)暂停功能:游戏进行过程中按下Z键可进入暂停模式,再按Z则返回游戏。
(9)无敌模式:游戏进行过程中按下Y键可进入无敌模式,再按Y则返回正常游戏。该模式下战机生命值不会减少,可供测试使用。
(10)魔法值:游戏进行过程中,战机魔法值会随着时间递增到上限10,魔法值供战机道具功能的使用,过一个关卡魔法值不清零。
(11)战机大招:当战机魔法值为10满状态时,按下X键消耗所有魔法值可发动大招,对屏幕中的敌机进行清屏,Boss扣50点血量。
(12)防护罩:当魔法值不为0时,按下C键可打开防护罩道具,该状态下战机处于无敌状态,不会损失生命值,但魔法值会随着防护罩开启慢慢降低。
(13)战机升级功能:战机子弹单个威力为1,在魔法值不为0时,按下V键开启升级战机模式,战机图标变为动画,子弹威力变成两倍。(若同时开启防护罩和战机升级,则魔法值递减速度翻倍)。

收获:

  1. 透明贴图实现技术


domain 这个定义的都是最基础的

ball 双向的 炸弹,飞行方向 速度 什么级别对应使用什么类型的炮弹 绘制功能

blood 关键在于血包的移动 的 边界处理。

bomb

boss 大个儿物体出场要先出完 再左右动

enemy 双向的

explosion

GameObject

MyPlane 升级版 和 普通版 升级版是动态的

Scence

MyPanel.java
定义了各种常量
定义了各个组件拜访的位置和文字
draw(所有资源的显示)

SpaceWar.java
监听各个按键, MyPanel.myplane.setPoint(new Point(x, MyPanel.myplane.getPoint().y));
播放音效
Y无敌模式下 要清空敌机,对boss也要大量减血

task

  1. Timer定时器技术

Timer就是 多线程,里面的 run

EnemyTask 生成敌机

代码写的很好的 点

posted @ 2021-05-22 09:39  千面鬼手大人  阅读(190)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css