设计模式3:飞机大战源码PPT演示录像

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,设计模式,游戏编程的技术,可以作为一个锻炼的案例。

你可能感兴趣的:(java和设计模式)