java课程设计报告39577

上传人:xmg****18 文档编号:120439981 上传时间:2020-02-06 格式:DOC 页数:62 大小:795KB
返回 下载 相关 举报
java课程设计报告39577_第1页
第1页 / 共62页
java课程设计报告39577_第2页
第2页 / 共62页
java课程设计报告39577_第3页
第3页 / 共62页
java课程设计报告39577_第4页
第4页 / 共62页
java课程设计报告39577_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《java课程设计报告39577》由会员分享,可在线阅读,更多相关《java课程设计报告39577(62页珍藏版)》请在金锄头文库上搜索。

1、下载可编辑凯里学院Java课程设计报告题 目 風云J-20 所在院系 计科学院 学生姓名 张仁华 专 业 计算机科学与技术 班 级 09计本1班 学 号 2009406010 2011年12月15日.专业.整理.一、游戏项目分析与设计1、游戏项目功能分析本游戏通过玩家飞机(J-20)发射子弹攻击敌机,当敌机被飞机子弹打中的时候飞发生爆炸,使得敌机消失,并且同时播放效果音乐以及爆炸效果。本游戏中的角色J-20、敌机、B-2等均能发射子弹攻击对方,其中B-2能够发射导弹。当敌机子弹打中J-20时J-20的 生命值J-20_HP会相应的减少,当B-2的子弹或者导弹击中J-20时J-20的HP也相应的

2、减少。当飞机与敌机相撞的时候,敌机爆炸(同时播放效果),J-20_HP 减少,J-20与B-2相撞的时候J-20发生爆炸且游戏结束。当J-20_HP为0时,游戏结束,当J-20的子弹打中B-2时B-2_HP减少,当减少到0的时候B-2死亡,游戏胜利即游戏通关。2、本系统共包括六个Java源文件类之间的关系如图1.1所示。图1.1 类之间的关系3、Java源文件及其功能如表1.1所示。表1.1 文件清单序号文件名主要功能备注1StartGame.java主窗体类含main方法2FeiJi.java定义飞机类3ZiDan.java定义飞机的子弹类4DiJi.java定义敌机类5DiJiZiDan.

3、java定义敌机子弹类6Boss.java 定义Boss类(B-2)7BossZiDan.java定义Boss子弹类8BossDaoDan.java定义BossDaodan类9GuanBi.java定义关闭游戏窗口类10BeiJing.java定义游戏背景类11GameSound.java定义播放背景音乐类二、系统实现1、主类StartGame(其中有一个内部类(线程类))(1)成员变量如表2.1所示表2.1 成员变量成员变量描述变量类型成员变量名工具包ToolkitTool缓冲图片ImageHc_img游戏状态intGame_type敌机数量intDJNum子弹坐标intzd_y飞机对象Fe

4、iJiFjBoss对象BossBs背景对象BeiJingbj子弹集合ArrayListzd_List敌机集合ArrayListdj_List敌机子弹集合ArrayListdjzd_ListBoss导弹集合ArrayListbsdd_ListBoss子弹集合ArrayListbszd_ListBoss子弹集合ArrayListbszd01_List爆炸集合ArrayListbz_List爆炸图片数组Imagebz_img15媒体跟踪器对象MediaTrackermt声音对象GameSoundmusic计数器intnum(2)方法如表2.2所示表2.2 方法名称功能备注showWindow()创建

5、主窗口addKeyListener()添加键盘监听update(Graphics g)创建缓冲图片paint(Graphics g)画图片方法main(String args)主方法(3)源文件StartGame.java代码如下给出。import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.MediaTracker;import java.awt.Toolkit;import java.awt.e

6、vent.KeyAdapter;import java.awt.event.KeyEvent;import java.util.ArrayList;public class StartGame extends Frame / Toolkit.getDefaultToolkit()获取默认工具包public Toolkit tool = Toolkit.getDefaultToolkit();Image hc_img = null;/ 设置游戏状态 0初始 1进行中 2胜利 3失败 4暂停int game_type = 0;/ 敌机死亡数量int DJNum = 0;int zd_y;/ 创建一

7、个飞机类对象FeiJi fj = null;/ 创建一个Boss对象Boss bs = null;/ 创建一个背景对象BeiJing bj = null;/ 创建一个子弹集合,ArrayList zd_List = new ArrayList();/ 创建一个敌机集合,ArrayList dj_List = new ArrayList();/ 创建敌机子弹集合ArrayList djzd_List = new ArrayList();/ 创建Boss子弹集合ArrayList bosszd_List = new ArrayList();ArrayList bosszd01_List = new

8、 ArrayList();/ 创建Boss导弹集合ArrayList bossdd_List = new ArrayList();/ 创建一个子弹爆炸集合ArrayList bz_List = new ArrayList();/ 定义一个爆炸图片数组Image bz_img = new Image15;/ 定义一个媒体跟踪器MediaTracker mt = new MediaTracker(this);/ 创建一个声音类对象GameSound music = new GameSound();/ 创建一个计数器public int num = 0;/ 创建一个线程类public void sh

9、owWindow() / 把爆炸图片存到图片数组中for (int i = 0; i m.bz_img.length; i+) Image img = tool.getImage(StartGame.class.getResource(Images/largeBurst + i + .png);bz_imgi = img;mt.addImage(img, 0);try mt.waitForID(0); catch (InterruptedException e1) e1.printStackTrace();/ 播放音乐music.playBgSound(go.mp3);/ 设置窗体的标题set

10、Title(風云 J-20 I);/ 获取屏幕的x,y坐标int x = tool.getScreenSize().width;int y = tool.getScreenSize().height;/ 设置窗体的大小setSize(600, 700);/ 创建一个飞机对象fj = new FeiJi(getWidth() / 2 - 30, getHeight() - 80, this);/ 创建一个线程对象MyThread my = new MyThread();/ 启动线程my.start();/ 创建一个背景对象bj = new BeiJing(this);/ 创建一个Boss对象bs

11、 = new Boss(getWidth() / 2 - 120, this);/ 设置窗体的初始位置 设置居中.屏幕 x坐标的一半减去组件x坐标的一半,屏幕y坐标的一半减去组件y坐标的一半.setLocation(x / 2 - getWidth() / 2, y / 2 - getHeight() / 2);/ 是否允许用户改变窗体大小setResizable(false);/ 设置窗体是否可见setVisible(true);/ 调用提供关闭的方法Guanbi gb = new Guanbi();addWindowListener(gb);/ 添加键盘监听器addKeyListener(

12、new KeyAdapter() public void keyPressed(KeyEvent e) / 游戏状态必须为0,同时必须按下enter键if (e.getKeyCode() = 10 & game_type = 0) game_type = 1;/ 播放游戏开始的musicmusic.playBgSound(BGM_0001.mp3);/当游戏失败的时候按Enter键初始化游戏状态if (e.getKeyCode() = 10 & game_type = 3) / 游戏状态为3,同时必须按下enter键game_type = 1;/ 播放游戏开始的musicmusic.playB

13、gSound(BGM_0001.mp3);m.fj.hp = 120;/ 玩家HPfj = new FeiJi(getWidth() / 2 - 30, getHeight() - 80, m);/飞机返回初始坐标zd_List.removeAll(zd_List);/移除所有的子弹集合bz_List.removeAll(bz_List);/移除所有的爆炸集合bosszd_List.removeAll(bosszd_List);/移除Boss子弹集合bosszd01_List.removeAll(bosszd01_List);/移除Boss子弹集合bossdd_List.removeAll(bossdd_List);/移除Boss导弹集合/ 飞机移动fj.moveFeiJi(e););/ 创建一个窗体对象Start

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号