Skip to main content

飞机大战 / Space Shooter in Java

Space Shooter 1Space Shooter 2

操作#

  • 左右上下来控制飞船
  • 空格 – 大招

功能集锦#

  • 吃弹药箱可以增加每次发子弹的个数
  • 吃“改变子弹”可以改变所发射子弹的种类
  • 吃医疗包可以增加血量
  • 对上下移动的速度做了特殊处理,更贴合实际,有加速的感觉
  • 背景是动态背景,而且随着游戏进行,背景会进行更换
  • 敌方有不同的种类,而且敌方存在大 boss
  • 我方有大招,可以干掉屏幕内所有敌人以及子弹

设计思想#

  • 通过 EventListener 来监听用户对键盘的操作,左右上下控制飞船
  • 多线程 – 用来画,效果,更新飞船的位置,计算是否有碰撞,生成新敌人的飞船
  • 为了防止 DeadLock 采用了锁机制
  • 检查碰撞 – 认为每个飞船是一个长方形,检验是否有交叉

类的继承关系#

img1

有三个类用来记录常量#

  • enemyInfo.java – 记录关于敌人飞船的信息 如生命值
  • bulletInfo.java – 记录关于各种子弹的信息 如伤害力
  • constant.java – 关于游戏界面的信息 如屏幕大小

UI#

采用了 JFrame,JPanel,MenuBar,MenuItem

游戏的绘画都在 BattleField JPanel 上 (BattleField 在 gamePanel Jpanel 上)

img4

代码#

GITHUB: https://github.com/anakornk/Java-SpaceShooter