《2022年Java课程设计小游戏.pdf》由会员分享,可在线阅读,更多相关《2022年Java课程设计小游戏.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java 课程设计小游戏高级语言程序设计课程设计报告1、 程序设计说明书【设计题目】雷霆行动游戏程序【问题描述】雷霆行动就是一款供大家休闲娱乐的小游戏,游戏通过鼠标控制我方飞机hero 的移动 ,达到躲闪敌机的目的;利用鼠标键发射子弹与导弹,达到击毁敌机的目的,摧毁敌机有积分。此游戏为闯关积分类小游戏。【软件功能】1、按鼠标左键, 游戏开始。2、利用鼠标移动控制hero 自由移动 , 闪躲敌方子弹。3、利用鼠标左键发射子弹, 实现打中敌方飞机的功能; 利用鼠标右键释放导弹, 实现摧毁大量敌机的功能 ,击中一个敌方飞机积一分。 4、hero 碰到对方子弹会消耗生命, 消耗生命的多少, 依据子弹的
2、不同而不同。5、一关之后会进入下一关。6、游戏右上角红色的进度条表示hero 的生命 , 当红色全部消失之后, 游戏结束 , 显示死亡。 7 、游戏结束后, 可重新开始 , 同 1。【算法思想】1、创建游戏主界面, 确定窗口的坐标。 2、设计游戏开始界面显示信息及信息坐标。3、设置游戏进行中的信息,hero 的移动、释放子弹与导弹, 达到击毁敌机的目的。4、处理游戏进行中的子弹、大爆、爆炸、敌机消失与存在的条件。5、设置进入下一关的条件。6、设计游戏结束界面显示信息及信息坐标。7、处理游戏重新开始满足的条件。8、装载图像。9、对游戏进行调试与改进, 使这个游戏更加完善。【类的设计】本程序共有七
3、个类: 1、 MainPanel 属性 :BBv为子弹数组,EEv 为敌机数组,BOMBv为爆炸数组,EBv为敌机子弹数组,DBv 为 大 爆 数 组 ,E-num为 敌 机 数 量 ,E-max敌 机 最 大 数 ,E-vel为 敌 机 速 度 ,E-mov为 敌 机横移几率 ,E-hit 为敌机开火几率,Sum 为击毁敌机数量,hero-hp 为 hero 生命 ,back 至db-2均为图片 ,tracker 为媒体跟踪器,y 为背景滚动变量,seq 为 hero 的动画变量 ,isfire 为 hero开火 ,isblast 为就是否发爆 ,blastnum 为大爆的数量 ,blast
4、c 为控制大爆 ,f、ff、s、ss 均为游戏界面上显示的信息; 方法 :MainPanel(Game) 构造方法,paint(Graphics) 建立游戏开始界面如显示的文字,run() 控制对 象 移 动 ,BBmove(int,int)子 弹 的 移 动 方 法 ,DBmove(int,int)大 爆 的 移 动 方 法 , mouseDragged(MouseEvent) 鼠 标 的 拖 拽 用 来 保 证hero 不 出 界 ,mouseMoved(MouseEvent) 鼠 标 的 移 动 用 来 控 制hero 移 动 ,mousePressed(MouseEvent) 鼠 标
5、按 键 在 组 件 上 按 下 时 调用 ,重新开始游戏,mouseClicked(MouseEvent) 鼠标按键在组件上单击(按下并释放) 时调 用 , 释 放 子 弹 ,mouseReleased(MouseEvent) 鼠标 按 钮 在 组 件 上 释放 时 调 用 , mouseEntered(MouseEvent) 鼠 标 进 入 组 件 上 调 用 ,mouseExited(MouseEvent)鼠 标 离 开 组件时调用 ; 功能 :游戏的开始、运行、结束与重新开始。2、Game 继承 JFrame 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢
6、迎下载 名师归纳 - - - - - - - - - -第 1 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏属性 :x 为游戏主界面的横坐标,y 为游戏主界面的纵坐标,pl 为 hero 的子弹 ; 方法 :Game()创建游戏主界面,main(String ) 主方法 ; 功能 :创建出游戏的主界面。3、Blast(大爆 ) 属性 :x 为大爆的横坐标,y 为大爆的纵坐标,cont 为数量 ,islive 为 hero 存活 ; 方法 :Blast(int,int) 建立大爆的坐标,grow() 构造方法 ; 功能 :构造一个大爆(导弹爆炸 )的类。4、
7、Bomb( 爆炸 ) 属性 :x 为爆炸的横坐标,y 为爆炸的纵坐标,cont 为数量 ,islive 为 hero 存活 ; 方法 :Bomb(int,int) 建立爆炸的坐标,grow() 构造方法 ; 功能 :构造一个爆炸(子弹击中敌机)的类。5、Enemy(敌机 ) 属性 :x 为敌机的横坐标,y 为敌机的纵坐标,vx 敌机数组的横坐标,vy 为敌机数组的纵坐标, r 为敌机横移几率,f 为敌机开火几率,toleft 为向左移动敌机,toright 为向右移动敌机; 方 法 :Enemy(int,int,int,int)建 立 敌 机 的 坐 标 ,move(int) 实 现 敌 机
8、的 移 动 ,tofire() 敌 机 释放子弹 ,hit(int,int) 敌机的子弹攻击hero,hitblast(int,int) 子弹产生爆炸 ; 功能 :构造一个敌机的类,实现敌机的移动。6、EnemyBullet( 敌机子弹 ) 属性 :x、y 为敌机子弹的坐标,vx、vy 为敌机子弹数组的坐标; 方法 :move()实现敌机子弹的移动,hit(int,int) 敌机子弹攻击hero; 功能 :构造一个敌机子弹的类,实现敌机子弹的移动与攻击。7、PlayerBullet(hero 子弹 ) 属性 :x、y 为 hero 子弹的坐标 ,v 为 hero 子弹的速度 ; 方法 :mov
9、e()实现 hero 子弹的移动 ,hit(int,int)hero 子弹攻击敌机; 功能 :构造一个hero 子弹的类 ,实现 hero 子弹的移动与攻击。【用户界面】游戏开始界面精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏游戏进行中界面精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 28 页 - - - - -
10、- - - - - Java 课程设计小游戏游戏结束界面精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏【程序技巧】1、建立一个主类,其余六个类均通过这个主类来调用2、响应鼠标事件3、用户界面采用图形用户界面4、利用媒体跟踪器监测图像的装载5、无效的子弹与被摧毁的敌机能及时处理,未被摧毁的敌机与子弹可以保留6、游戏失败可以重新开始【模块划分及调用关系】【模块流程图】游戏界面主框架模块: 游戏操作模块: 游戏开始Game:
11、 游 戏主界面模块MainPanel: 游戏主 要 运 行 步 骤模块Enemy: 敌创建 MainPanel 游戏运行模块创建 Game 游戏主界面模块游戏开始精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏【运行说明】按鼠标左键开始游戏,鼠标移动控制hero 的移动 ,按鼠标左键打出子弹,攻击敌机 ,每打死一个敌机积一分 ,按鼠标右键放导弹,实现摧毁大量敌机的功能,本游戏共三关,若游戏中途失败 ,可以重新开始。2、
12、程序上机调试报告【语法错误及其排除】1、无法更改导弹数量。解决方法:添加 Blastnum=10 语句 ,即有十个导弹; 2、个别图片运行不出来。解决方法:将图片格式与程序中相匹配; 3、文字在程序中写出,但在游戏过程中不显示。解决方法:将文字的坐标调试好。【算法错误及其排除】1、点击鼠标右键无法实现大爆。解决方法:mouseReleased(MouseEvent e) 2、hero 的子弹打中敌机后敌机没有消失。解决方法:EBv 、remove(i); 3、 程序测试结果【测试数据】我方飞机的移动,就是否能打出子弹,导弹的释放 ,能否摧毁敌方飞机,就是否可以积分。【输出结果】游戏初始化就精品
13、资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏子弹爆炸情况精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏大爆(导弹爆炸 )、飞机移动精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - -
14、- - - - -第 8 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏【收获及体会】本来以为课程设计就是个很简单的事情,但就是随着程序的编写,发现这就是一个非常不容易的过程 ,通过去图书馆与上网查找资料,我发现我还有很多不足,并通过查 JDK 手册我也学习了很多知识,我意识到 JDK 手册就是非常好的一种学习Java的工具 ,Java在生活中有很重要的应用性,这提高了我的学习兴趣。编写程序的过程中我也遇到了很多困难,当程序出现错误运行不出来时,我非常着急 ,在冷静地分析、调通程序之后,我意识到有耐心、有恒心就是多么重要啊!在今后的学习生活中,我会更加努力
15、,认真、耐心、细心地处理事情,相信我会逐步提高自己的能力。4、 源程序代码 (Java 语言 ,要求有尽可能多的注释语句) package lightning; import java 、awt、*; import java 、awt、Image; import java 、awt、Toolkit; import java 、awt、MediaTracker; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏import
16、 javax 、swing、*; import java 、 awt、event、*; import java 、 util、EventListener; import java 、 util、Vector; import lightning 、*; public class MainPanel extends JPanel implements Runnable,MouseMotionListener,MouseListener Game a; Vector BBv=new Vector();/ 子弹数组Vector EEv=new Vector();/ 敌机数组Vector BOMBv=n
17、ew Vector();/ 爆炸数组Vector EBv=new Vector();/ 敌机子弹数组Vector DBv=new Vector();/ 大爆数组int E_num; int E_max;/ 敌机最大数int E_vel;/ 敌机速度int E_mov;/ 敌机横移几率int E_hit;/ 敌机开火几率int Sum;/ 击坠敌机数量,击坠一个敌机积一分int hero_hp;/hero 生命Image back=null;/ 背景图片Image hero=null;/hero 图片Image fire=null;/hero子弹图片Image fire_l=null;/hero
18、子弹 2 图片Image el_0=null;/ 敌机图片Image el_0_l=null;/ 敌机 left 图片Image el_0_r=null;/ 敌机 right 图片Image el_bb=null;/ 敌机子弹图片Image el_bb_0=null;/ 敌机子弹 2 图片Image bomb_0=null;/ 敌机爆炸0 图片Image bomb_1=null;/ 敌机爆炸1 图片Image bomb_2=null;/ 敌机爆炸2 图片Image bomb_3=null;/ 敌机爆炸3 图片Image db_1=null;/ 大爆 1 图片Image db_2=null;/
19、大爆 2 图片MediaTracker tracker=null;/ 媒体跟踪器 ,用来监测图像的装载Thread Game_star; int y;/ 背景滚动变量int hero_oldx,hero_oldy;/hero的旧 x,y 坐标int hero_x,hero_y;/hero 的新 x,y 坐标int seq;/hero 的动画变量boolean isfire;/hero 开火boolean isblast;/就是否发爆int BBx,BBy;/ 子弹的横纵坐标int DBx,DBy;/ 大爆的横纵坐标int blastnum;/ 大爆的数量boolean blastc;/控制大爆
20、精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏Font f=new Font( 黑体 ,Font、BOLD,30); Font ff=new Font( 黑体 ,Font、 BOLD,90); Font S=new Font( 幼圆 ,Font、BOLD,15); Font SS=new Font( 幼圆 ,Font、BOLD,25); MainPanel(Game a) this、a=a; tracker=new
21、MediaTracker(this); /将以下图片加到媒体跟踪器中back=Toolkit 、getDefaultToolkit() 、getImage(MainPanel、 class、getResource(back3、jpg); tracker、addImage(back,0); hero=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(hero、 jpg); tracker、addImage(hero,1); fire=Toolkit 、getDefaultToolkit() 、getImage(
22、MainPanel 、class、getResource(herozidan、 jpg); tracker、addImage(fire,2); fire_l=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(herozidan2、jpg); tracker、addImage(fire_l,3); el_0=Toolkit 、 getDefaultToolkit() 、 getImage(MainPanel、class、getResource(diji 、jpg); tracker、addImage(el_0,
23、4); el_0_l=Toolkit 、getDefaultToolkit() 、 getImage(MainPanel、class、 getResource(dijileft 、jpg); tracker、addImage(el_0_l,5); el_0_r=Toolkit 、 getDefaultToolkit() 、 getImage(MainPanel、class、getResource(dijiright 、jpg); tracker、addImage(el_0_r,6); el_bb=Toolkit 、getDefaultToolkit() 、getImage(MainPanel
24、、class、getResource(dijizidan 、jpg); tracker、addImage(el_bb,7); el_bb_0=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(el_bb_0 、jpg); tracker、addImage(el_bb_0,8); bomb_0=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、 getResource(bomb_0、jpg); tracker、addImage(bomb_0,9);
25、bomb_1=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、 getResource(bomb_1、jpg); tracker、addImage(bomb_1,10); bomb_2=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、 getResource(bomb_2、jpg); tracker、addImage(bomb_2,11); bomb_3=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、
26、getResource(bomb_3、jpg); tracker、addImage(bomb_3,12); db_1=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(db1、jpg); tracker、addImage(db_1,13); db_2=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(db2、jpg); tracker、addImage(db_2,14); this、addMouseMotionListene
27、r(this); this、addMouseListener(this); Game_star=new Thread(this); y=-(5*a 、y); hero_x=a、x/2-50; hero_y=a、y-150; hero_oldx=hero_x; hero_oldy=hero_y; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏hero_hp=-1; seq=0; Sum=0; E_num=0; E_ma
28、x=9; E_vel=7; E_mov=90; E_hit=97; isfire=false; isblast=false; blastnum=10; blastc=false; public void paint(Graphics g) g、drawImage(back,0,y,a、x,a、y*6,this); g、setColor(Color 、RED); g、setFont(S); g、drawString( 导弹 :+blastnum,a 、x-400,25);/ 绘制大爆的数量g、drawString( 生,a、x-200,40); g、drawString( 命,a、x-200,5
29、5); g、fillRect(a 、x-150,65,10,hero_hp); g、setColor(Color 、BLACK); g、drawRect(a、x-20,64,10,300); if(seq=0) g、setColor(Color 、RED); if(seq=1) g、setColor(Color 、BLACK); g、setFont(S); g、drawString( 积分 :,a、x-250,25); g、drawString(String 、 valueOf(Sum),a、x-210,25); g、setFont(f); if(hero_hp=-1) g、setFont(f
30、); g、setColor(Color 、RED); g、drawString( 雷霆行动 ,a、x/2-a、x/3,a、y/2-a、y/8); g、drawString( 您能消灭多少敌机?,a、x/2-a、x/3,a、y/2-a、 y/16); g、setFont(SS); g、setColor(Color 、RED); g、drawString( 请按下鼠标左键开始,a、x/2-a、 x/4,a、y/2+a、y/8); g、dispose(); try Thread、sleep(50); catch(Exception e) 精品资料 - - - 欢迎下载 - - - - - - - -
31、 - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏this、Game_star=null; /如果游戏结束显示如下信息else if(hero_hp(a、y)*5-50) g、drawString( 本游戏即将开始,a、x/2-a、x/4,a、y/2-a、y/8); g、drawString( 练习模式 ,a、x/2-a、x/4,a、y/2-a、y/16); if(Math 、abs(y)(a、y)*4 & Math、abs(y)(a、y)*3 & Math、abs(y)(a、y)
32、*2 & Math、abs(y)(a、y) & Math 、 abs(y)(a、y)+150) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏E_max=32; E_vel=13; E_mov=90; E_hit=89; g、drawString( 最后了祝您好运,a、x/2-a、x/4,a、y/2-a、y/8); if(y=0) E_max=40; E_vel=18; E_mov=90; E_hit=86; g、d
33、rawString( 向上帝祈祷吧!,a、x/2-a、x/4,a、y/2-a、y/8); /处理敌机子弹s for(int i=0;i-50) if(ebs、 cont=6) g、drawImage(el_bb_0,ebs、x,ebs、y,13,15,this); /处理子弹s for(int i=0;i-50) if(bs、cont=3) g、drawImage(fire,bs、x,bs、y,30,30,this); /处理大爆for(int i=0;iDBv、size();i+) Blast blast; blast=(Blast)DBv 、elementAt(i); if(blast 、
34、islive) if(blast 、cont10 & blast 、 cont20) g、drawImage(db_2,blast、x,blast、y,200,200,this); else DBv 、remove(i); /处理爆炸s for(int i=0;iBOMBv、size();i+) Bomb bombs; bombs=(Bomb)BOMBv 、elementAt(i); if(bombs 、islive) if(bombs 、cont10 & bombs 、cont20 & bombs 、cont40) g、drawImage(bomb_3,bombs、x,bombs、y,50,
35、50,this); else BOMBv 、remove(i); /处理敌机s for(int i=0;iEEv 、size();i+) Enemy es; es=(Enemy)EEv、elementAt(i); if(es、y(a、y-50) if(es、islive & !es 、toleft & !es 、 toright) g、drawImage(el_0,es、 x,es、 y,45,45,this); else if(es、 toleft) g、drawImage(el_0_l,es、x,es、y,50,50,this); else if(es、 toright) g、drawIm
36、age(el_0_r,es、x,es、y,50,50,this); else es、islive=false; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏/处理 hero g、clipRect(hero_x,hero_y,70,70); g、drawImage(hero,(hero_x-seq*1),hero_y,46,53,this); public void run() int cont=0; while(t
37、racker 、checkAll(true)=false) try Thread、sleep(300); catch(Exception e) while(Game_star!=null) /处理敌机s 就是否撞击hero if(EEv 、size()=0) E_num=0; / 清空敌机数组if(cont!=0) /移动条件下增加难度if(E_num=E_max)/ 满足条件则增加敌机Enemy es; es=new Enemy(int)(Math 、random()*(a 、x-50),E_vel,E_mov,E_hit); EEv、addElement(es); E_num+; for(
38、int i=0;iEEv 、size();i+) Enemy es; es=(Enemy)EEv 、elementAt(i); if(es、y(a、y-50) & es 、islive) es、hit(hero_x,hero_y);/ 监测碰撞if(!es 、islive) Bomb bombs; bombs=new Bomb(es、x,es、y); BOMBv 、addElement(bombs); /System、out、println(YOU LOST); hero_hp-=10; if(es、islive)/ 移动未撞到的敌机es、move(hero_x); es、tofire();
39、if(es、tofire() & i%4=0 & es、y(a、y-100) EnemyBullet ebs; ebs=new EnemyBullet(es 、x,es、y,hero_x,hero_y); EBv、 addElement(ebs); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏 else EEv、remove(i); / 消除无效敌机 /处理子弹s 就是否击中for(int i=0;i-50 & b
40、s 、islive)/ 子弹存活for(int j=0;jEEv 、size();j+) Enemy es; es=(Enemy)EEv 、elementAt(j); if(es、islive & bs 、islive)/ 敌机存活es、hit(bs、x,bs、y); bs、hit(es、x,es、y);/监测碰撞if(!es 、islive)/ 添加爆炸Sum+; blastc=true; Bomb bombs; bombs=new Bomb(es、 x,es、 y); BOMBv 、addElement(bombs); if(bs、islive) bs、move(); / 未击中的子弹继续
41、移动 else BBv 、remove(i); / 清除击中的子弹 /处理大爆for(int i=0;iDBv、size();i+) Blast blast; blast=(Blast)DBv 、elementAt(i); if(blast 、islive)/ 大爆存活for(int j=0;jEEv 、size();j+) Enemy es; es=(Enemy)EEv 、elementAt(j); if(es、islive & blast 、islive)/ 敌机存活es、hitblast(blast、x,blast、 y);/监测碰撞if(!es 、islive)/ 添加爆炸精品资料 -
42、 - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏Sum+; blastc=true; Bomb bombs; bombs=new Bomb(es、 x,es、 y); BOMBv 、addElement(bombs); blast、grow(); else DBv、remove(i); / 清除击中的子弹 /处理爆炸s for(int i=0;iBOMBv、size();i+) Bomb bombs; bombs=(Bomb)BO
43、MBv 、elementAt(i); if(bombs 、islive) bombs、grow(); else BOMBv 、remove(i); /处理敌机子弹就是否击中for(int i=0;i-10 & ebs 、y0 & ebs 、x0&blastc)/符合条件增加大爆blastnum+; blastc=false; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏 cont+; if(cont%3=0) if
44、(isblast) DBmove(DBx,DBy); if(isfire) BBmove(BBx,BBy); if(seq=0) seq=1; else seq=0; cont=0; repaint(); try Thread、sleep(20); catch(Exception e) if(y=0) y=0; else y+; public void BBmove(int x,int y) PlayerBullet pb; pb=new PlayerBullet(x,y); /保证不出界if(BBx=(a 、x-45) BBx=a 、x-45; if(BBy=(a 、y-150) BBy=a
45、 、y-150; BBv 、addElement(pb); /大爆的移动方法public void DBmove(int x,int y) Blast blast; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 19 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏blast=new Blast(x,y); /保证不出界DBv 、addElement(blast); public void mouseDragged(MouseEvent e) isfire=true;
46、BBx=hero_x+10; BBy=hero_y; hero_x=e、getX()-35; hero_y=e、getY()-35; /保证不出界if(BBx=(a 、x-45) BBx=a 、x-45; if(BBy=(a 、y-150) BBy=a 、y-150; if(BBx5) BBx=5; if(BBy15) hero_x=hero_oldx+15; if(hero_x-hero_oldx)15) hero_y=hero_oldy+15; if(hero_y-hero_oldy)=(a 、x-55) hero_x=a、x-55; if(hero_y=(a 、y-110) hero_y
47、=a、y-110; if(hero_x0) hero_x=0; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 20 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏if(hero_y=(a 、x-55) hero_x=a、x-55; if(hero_y=(a 、y-110) hero_y=a、y-110; if(hero_x0) hero_x=0; if(hero_y15) hero_x=hero_oldx+15; if(hero_x-hero_oldx)15) her
48、o_y=hero_oldy+15; if(hero_y-hero_oldy)-15) hero_y=hero_oldy-15; hero_oldx=hero_x; hero_oldy=hero_y; public void mousePressed(MouseEvent e) /如果 GAMEOVER可以重新开始if(e、 getModifiers()=InputEvent、BUTTON1_MASK) if(hero_hp=(a 、x-75) BBx=a 、y-75; if(BBy=(a 、y-150) BBy=a 、y-150; if(BBx25) BBx=25; if(BBy=1) isb
49、last=true; DBx=hero_x-90; DBy=hero_y-170; EBv 、removeAllElements(); blastnum-; /System、 out、println(+blastnum); public void mouseClicked(MouseEvent e) public void mouseReleased(MouseEvent e) isfire=false; isblast=false; public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) pac
50、kage lightning; import java 、 awt、Toolkit; import java 、 awt、Color; import java 、 awt、Cursor; import java 、 awt、Container; import java 、 awt、BorderLayout; import javax 、swing、JFrame; import lightning 、*; public class Game extends JFrame int x,y; MainPanel p1; Game() x=Toolkit 、getDefaultToolkit() 、g