1.功能介绍:
java做的飞机大战,包括4个关卡,每一关有BOSS, BOSS的移动方式有三角形、抛物线等方式,敌机子弹分散发射,有道具可回血,玩家和BOSS显示生命值,每一关有胜利画面。PPT介绍每个类的作用,有演示视频录像。
这么多的功能,足够一个初学者的实训项目。
2. 好的架构
虽然增加了很多功能,和之前消消乐、飞机大战的程序差不多。增加功能,原有程序基本不用改。程序用父类、接口。新功能,只需要做子类。原有程序不改,能快速地改进、扩展,就是好架构。
3.详细功能
敌机两种运动方式:下落,抛物线拐弯后返回
一个敌机发出3个子弹:左右斜线,下落
随机产生道具:回血。遇到屏幕边框反弹
关底的BOSS,BOSS的产生
BOSS的各种移动:左右,三角形,抛物线,慢速,快速,停
BOSS的血条 ,护甲,伤害的计算
关卡的过渡,胜利画面,失败画面
飞机移动改为鼠标单击
4.技术
状态模式(用整数和多分支实现,可以状态模式改写)。可惜,这个模式在设计模式的书本靠后。
MVC的功能划分。父类、接口,就是根据model,view, 数据初始化,数据刷新,设计变量和函数。
游戏的基本技术:时间片,帧,x,y坐标增量,增量的修改,static的数据保存。
下载地址:
https://download.csdn.net/user/weixin_42644456/uploads
不能下载的,可以留联系方式,我直接发。
类的设计:
+---carry3 包
| GameTool.java 公用数据和常量、状态
| MyPanel.java 面板,绘图,游戏循环
| Scene.java 场景,关卡数据
| SceneFail.java 失败画面
| SceneInner.java 每一关的胜利画面
| Started.java 程序启动
| UserListen.java 鼠标点击监听
+---gamerole 包
| Boss.java BOSS
| BulletArray.java 玩家子弹数组
| EnemyArray.java 敌机数组
| EnemyBulletArray.java 敌机子弹数组
| EquipArray.java 道具数组
| Hero.java 玩家飞机
\---item
HitData.java 碰撞检测,双方数组下标
ItemArrayBase.java 父类,多个单元
ItemBase.java 一个单元
Path.java 移动接口:两个函数,改变坐标,返回名称
PathForward.java 向某个方向移动
PathLine.java 上下移动
PathLineTo.java 点A到点B
PathLoop.java 左右
PathLoop2.java 三角形
PathPao.java 小U型抛
PathPao2.java 大U型抛
PathPao3.java D型抛
类的设计,不止一种方法,可以有更好的方案。
这个案例,综合了java,设计模式,游戏编程的技术,可以作为一个锻炼的案例。