湖北大学本科课程设计题 目 Java课程设计——飞机大战姓 名学 号专业年级指导教师职 称2015年 12月 18日

----目录----

项目介绍

概要设计

2.1资源需求2.2游戏流程

类设计3.1游戏界面类3.2飞行物类3.3敌机类3.4蜜蜂类3.5玩家飞机类3.6子弹类

编码分析4.1游戏界面类4.2飞行物类4.3敌机类4.4蜜蜂类4.5玩家飞机类4.6子弹类

游戏测试画面

总结

一.项目介绍

针对Java课程设计,我做了一个小游戏——飞机大战,游戏代码包含到本学期所学的所有知识点。

程序运行后,进入到开始画面,鼠标单击开始游戏。敌机自上向下移动,随机出现,玩家机随鼠标移动并发射子弹,消灭敌机可以获得分数,随机出现小蜜蜂,消灭后可获得奖励。

二.概要设计

2.1资源需求

此游戏需要导入图片:背景图片,开始界面,玩家飞机,敌机,小蜜蜂,子弹,暂停界面,结束界面。

2.2游戏流程单击鼠标鼠标移出单击鼠标玩家死亡

三.程序结构

游戏界面:

ShootGame extends JPanelstatic块:导入图片main():创建窗口重写paint():画图action():鼠标事件TimerTask重写run():游戏运行的活动

飞行物类:

abstract FlyingObject属性:x,y坐标,image,图片长宽move:飞行物移动outOfbound:飞行物出界shootBy:子弹击中飞行物

敌机类:

Airplane extends FlyingObjectInt speed:移动速度重写move()重写outOfBound()getScore():击中敌机后得分Airplane():初始化敌机

蜜蜂类:

Bee extends FlyingObjectInt xSpeed,ySpeed :移动速度

Int awardType:奖励类型(双倍活力或加命)Bee():初始化蜜蜂重写move()重写outOfBound()getType():获取奖励类型

玩家飞机类:

Player extends FlyingObjectInt life,doubleFire:生命,双倍火力Player():初始化玩家重写move():换图片,形成飞机的动态效果重写outOfBound()shoot():生成子弹moveTo():玩家机移动isHit():玩家碰撞到飞行物setDoubleFire():设置双倍火力addDoubleFire():奖励双倍火力addLife():奖励生命deleteLife():减命getLife():获取生命数

子弹类:Bullet extends FlyingObjectInt speed:移动速度Bullet():初始化子弹重写move()重写outOfBound()

四.编码分析

ShootGame类

此类继承JPanel类构建游戏窗口并控制游戏的运行

类的成员变量:

public static final int WIDTH400;//窗口宽
public static final int HEIGHT600;//窗口高
//图片属性
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_FIRE0;//双倍火力的属性为0
public static final int LIFE1;//奖励生命的属性为1
public Player playernew Player;//创建玩家对象
private Bullet[] bullets;//创建子弹对象(当前为空)
private FlyingObject[] flyings;//创建飞行物对象(当前为空)
public static final int START0;//状态:开始为0
public static final int RUNNING1;//状态:运行为1
public static final int PAUSE2;