大学课程设计-飞机大战
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖北大学本科课程设计
题目 Java课程设计——飞机大战
姓名学号
专业年级
指导教师职称
2015年 12月 18日
----目录----
一.项目介绍-------------------------------- 1二.概要设计
2.1资源需求------------------------------ 1
2.2游戏流程------------------------------ 1三.类设计
3.1游戏界面类---------------------------- 2
3.2飞行物类------------------------------ 2
3.3敌机类-------------------------------- 2
3.4蜜蜂类-------------------------------- 3
3.5玩家飞机类----------------------------- 3
3.6子弹类-------------------------------- 4四.编码分析
4.1游戏界面类---------------------------- 4
4.2飞行物类------------------------------ 11
4.3敌机类-------------------------------- 12
4.4蜜蜂类-------------------------------- 13
4.5玩家飞机类----------------------------- 13
4.6子弹类-------------------------------- 15五.游戏测试画面----------------------------- 16六.总结------------------------------------ 18
针对Java课程设计,我做了一个小游戏——飞机大战,游戏代码包含到本学期所学的所有知识点。
程序运行后,进入到开始画面,鼠标单击开始游戏。敌机自上向下移动,随机出现,玩家机随鼠标移动并发射子弹,消灭敌机可以获得分数,随机出现小蜜蜂,消灭后可获得奖励。
二.概要设计
2.1资源需求
此游戏需要导入图片:背景图片,开始界面,玩家飞机,敌机,小蜜蜂,子弹,暂停界面,结束界面。
2.2游戏流程
游戏界面:
ShootGame extends JPanel
static块:导入图片
main():创建窗口
重写paint():画图
action():鼠标事件
TimerTask重写run():游戏运行的活动飞行物类:
abstract FlyingObject
属性:x,y坐标,image,图片长宽
move():飞行物移动
outOfbound():飞行物出界
shootBy():子弹击中飞行物
敌机类:
Airplane extends FlyingObject
Int speed:移动速度
重写move()
重写outOfBound()
getScore():击中敌机后得分
Airplane():初始化敌机
Bee extends FlyingObject
Int xSpeed,ySpeed :移动速度
Int awardType:奖励类型(双倍活力或加命)
Bee():初始化蜜蜂
重写move()
重写outOfBound()
getType():获取奖励类型
玩家飞机类:
Player extends FlyingObject
Int life,doubleFire:生命,双倍火力
Player():初始化玩家
重写move():换图片,形成飞机的动态效果
重写outOfBound()
shoot():生成子弹
moveTo():玩家机移动
isHit():玩家碰撞到飞行物
setDoubleFire():设置双倍火力
addDoubleFire():奖励双倍火力
addLife():奖励生命
deleteLife():减命
getLife():获取生命数
Bullet extends FlyingObject
Int speed:移动速度
Bullet():初始化子弹
重写move()
重写outOfBound()
四.编码分析
(一)ShootGame类
此类继承JPanel类构建游戏窗口并控制游戏的运行
类的成员变量:
public static final int WIDTH=400;//窗口宽
public static final int HEIGHT=600;//窗口高
//图片属性
public static BufferedImage airplane;
public static BufferedImage background;
public static BufferedImage bee;
public static BufferedImage bullet;
public static BufferedImage gameover;
public static BufferedImage player0;
public static BufferedImage player1;
public static BufferedImage pause;
public static BufferedImage start;
public static final int DOUBLE_FIRE=0;//双倍火力的属性为0 public static final int LIFE=1;//奖励生命的属性为1
public Player player=new Player();//创建玩家对象
private Bullet[] bullets={};//创建子弹对象(当前为空)
private FlyingObject[] flyings={};//创建飞行物对象(当前为空)public static final int START=0;//状态:开始为0
public static final int RUNNING=1;//状态:运行为1
public static final int PAUSE=2;//状态:暂停为2
public static final int GAME_OVER=3;//状态:游戏结束为3 private int state=0;//当前状态
1.static块