ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:3.67MB ,
资源ID:12311887      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12311887.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(android打飞机游戏课程设计论文解读.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

android打飞机游戏课程设计论文解读.docx

1、android打飞机游戏课程设计论文解读 java和android 课 程 设 计题 目: 星球大战(飞机游戏) 专 业: 计算机科学与技术 年 级: 2010 学 号: 2010312050 姓 名: 杨显财 日 期: 2013/7/20 前 言自1946年第一台计算机问世以来,计算机产业的飞速发展已远远超出人们对它的预料,在某些生产线上,甚至一秒钟就能生产出一台微型计算机,产量猛增,价格低廉,这就使得它的应用范围迅速扩展。如今,计算机已深入到人类社会的各个领域。各种应用程序不断地被开发应用,随之程序设计语言也不断发展完善,Java便是这程序语言世界里的一朵奇葩,如今甚为流行。与C+语言相比

2、,Java是一种完全面向对象的语言,它吸取了C+语言的语句结构,去掉了指针、多继承、运算符重载等这些降低安全性、低可靠性的语言元素,并实现了自动回收垃圾的功能,从而使得Java语言更具有可移植性、鲁棒性、安全性、与环境无关性等特点,赢得了广大软件开发者的青睐。今天,作为计算机科学与技术及相关专业的学生,更应该了解Java语言的语法规范,理解Java语言程序设计的基本特点,掌握利用Java语言编写程序的基本技巧,学会利用Java开发环境调试程序。为了更进一步将所学知识与实际结合起来,我选择了用Java实现飞机游戏(星球大战),在老师指导的基础上增加了一些功能和背景素材,使这个游戏具有更佳的视觉效

3、果和可玩性。一、课程设计目的1、熟悉Java开发环境,熟悉用Java完成一个应用程序的设计过程,掌握有关编辑、调试和整合程序的方法和技巧。2、通过此设计,了解Java语言的特点;熟悉Java程序的编写;体会Java语言在问题求解中的特点。3、总结学习Java语言的心得和体会,并对Java课程设置提出自己的意见和建议。二、设计任务及要求根据Java和android课程的学习,选择以下所列中的任一,并完成:1、java版的翻窗口游戏;2、android版的翻窗口游戏;3、java版的打飞机游戏;4、android版的打飞机游戏。三、任务选定根据小学期我对Java语言的学习和了解,我决定做一个Jav

4、a版的打飞机游戏(星球大战)。四、总体设计框架(主要功能)星球大战爆炸我军飞机移动敌军发子弹敌军飞机移动音乐等级通关我军发子弹背景音乐我军发射子弹的音乐敌军飞机撞到我军飞机敌机子弹碰到我军子弹敌机子弹碰到我军飞机我军发子弹碰到敌机五、详细设计与实现过程(一)配置开发环境 1、 安装JDK首先将下载的jdk-7u7-windows-i586.exe 安装到C:下 2、配置环境变量选择计算机右键属性高级设置环境变量,选择Path,双击Path,将安装JDK目录下的bin文件夹的路径复制,然后将它粘贴到Path后面,点击确定按钮完成环境变量的配置。3、安装eclipse双击eclipse快捷方式图标

5、,它会在你选择的路径下生成一个workspace文件夹,以后的项目都在这里面。(二)功能定义本游戏通过玩家飞机发射子弹攻击敌机,当敌机被飞机子弹打中的时候飞发生爆炸,使得敌机消失,并且同时播放效果音乐以及爆炸效果。本游戏中的角色:我军飞机、敌机、敌军BOSS等均能发射子弹攻击对方。当敌机子弹打中我军时我军飞机的生命值会相应的减少1次,我军飞机共有5次生命,5次生命都用完后就跳到GAME OVER的页面,这时可以选择重新开始或退出游戏。当我军子弹击中敌军时,敌军和子弹消失。当飞机与敌机相撞的时候,敌机爆炸(同时播放效果),我军飞机减少生命值减1,击中一架敌军加10分,当分数答到1200分时,BO

6、SS就会出现,BOSS有100次生命值,击败BOSS,会跳出FICTORY页面,游戏胜利即游戏通关。(三)类的设计(类之间的关系图)(四)java源文件及其功能如表所示表1.1 文件清单序号文件名主要功能备注1GameView.java主窗体类含main方法2Plane.java定义飞机类3Bullet.java定义飞机的子弹类4EnPlane.java定义敌机类5EnBullet.java定义敌机子弹类6Boss.java定义Boss类7Boom.java定义爆炸类8Score.java定义分数类9Ufo.java定义Ufo类10BackGround.java定义游戏背景类11GameSou

7、nd.java定义播放背景音乐类(五)系统实现1、主类GameView(其中有一个内部类(线程类))(1)成员变量如表2.1所示表2.1 成员变量成员变量描述变量类型成员变量名工具包Toolkittk游戏状态intGame_type飞机坐标intx,y子弹坐标intx,y飞机对象PlaneplaneBoss对象BossbossUfo对象Ufouf背景对象BackGroundbg子弹集合ArrayListList敌机集合ArrayListList敌机子弹集合ArrayListList爆炸图片数组Imagebooms媒体跟踪器对象MediaTrackermt声音对象GameSoundmusic计数

8、器intnum(2)方法如表2.2所示表2.2 方法名称功能备注GameView()创建主窗口addKeyListener()添加键盘监听paint(Graphics g)画图片方法main(String args)主方法(3)游戏窗体及代码package plane.view;import java.awt.Button;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.

9、KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.ArrayList;import java.util.List;import java.util.Random;import plane.view.GameSound.BgSoundThread;publi

10、c class GameView extends Frame static GameView gameView; public Toolkit tk = Toolkit.getDefaultToolkit(); public Image plane_img = tk.getImage(./src/images/mplane.png); public Image circlebullet = tk.getImage(./src/images/bullet2.png); public Image enemyplane = tk.getImage(./src/images/p1.png),tk.ge

11、tImage(./src/images/p2.png), tk.getImage(./src/images/p3.png),tk.getImage(./src/images/p4.png); public Image enemybullet = tk.getImage(./src/images/bullet.png); public Image booms = tk.getImage(./src/images/bao.gif),tk.getImage(./src/images/b2.gif), tk.getImage(./src/images/b3.gif),tk.getImage(./src

12、/images/b4.gif), tk.getImage(./src/images/b5.gif),tk.getImage(./src/images/b6.gif), tk.getImage(./src/images/b7.gif),tk.getImage(./src/images/b8.gif), tk.getImage(./src/images/b9.gif),tk.getImage(./src/images/b10.gif), tk.getImage(./src/images/b11.gif); public Image bg = tk.getImage(./src/images/bg.

13、jpg); public Image go = tk.getImage(./src/images/go.png); public Image boos = tk.getImage(./src/images/boos.png); public Image victory = tk.getImage(./src/images/victory.png); public Image ufo = tk.getImage(./src/images/ufo.gif); public Plane plane; public Bullet bullet; public List bullets; public

14、int time; public List enPlane; public List enBullet; public Random random=new Random(); public Boom boom; public Boom planeBoom; private boolean PauseConvertStart = false; public String musicFire = music/fire1.mp3 ; public String musicBgString = music/bg.mp3; public String musicBg = ; BackGround bac

15、kGround; private Image imageBuff; private int GameState; / 0 表示游戏结束,1表示正在运行 GameSound gs = new GameSound(); public Score score; repainThread rp; Boos boos2; Ufo uf; boolean isOver = true; public int enPlaneCount= 60; Random randomUfo = new Random(); Override public void update(Graphics g) if (imageB

16、uff = null) imageBuff = this.createImage(700, 700); Graphics gBuff = imageBuff.getGraphics(); g.drawImage(imageBuff, 0, 0, getWidth(), getHeight(), this); paint(gBuff); public class repainThread extends Thread Override public void run() if(score.nextState) time = 0; enPlaneCount = enPlaneCount - 10;

17、 while(true) try time+; if (time % enPlaneCount= 0) if(!score.isBoos&GameState=1) enPlane.add(new Enplane(random.nextInt(700-150),0,true,GameView.this,enemyplanerandom.nextInt(4); if(!plane.isLife | !boos2.isLife) GameState = 0; Button bt = new Button(重新开始); bt.addMouseListener(new MouseAdapter() Ov

18、erride public void mouseClicked(MouseEvent e) / TODO Auto-generated method stub super.mouseClicked(e); gs.bst.stop(); gameView.dispose(); gameView = new GameView(); ); bt.setBackground(Color.white); bt.setSize(60,30); bt.setLocation(380, 477); GameView.this.add(bt); Button escButton = new Button(退出游

19、戏); escButton.setBackground(Color.white); escButton.setSize(60,30); escButton.setLocation(461, 477); escButton.addMouseListener(new MouseAdapter() Override public void mouseClicked(MouseEvent e) / TODO Auto-generated method stub super.mouseClicked(e); System.exit(0); ); GameView.this.add(escButton);

20、 this.stop(); repaint();/不断重画该窗体 Thread.sleep(20); catch (Exception e) / TODO: handle exception public GameView() uf = new Ufo(100, 0, true, this); boos2 = new Boos(0, 27, true, this,100); gs = new GameSound(); gs.playBgSound(musicBgString); score = new Score(0, 0, true, this); GameState = 1; backGr

21、ound = new BackGround(0, 0, this); boom = new Boom(-200, -100, false, this); enBullet =new ArrayList(); enPlane = new ArrayList(); bullets = new ArrayList(); planeBoom = new Boom(-200, -200, false, this); rp = new repainThread(); rp.start(); plane = new Plane(100, 550, true, this,5); this.setSize(70

22、0,700); this.setTitle(星球大战); this.setResizable(false); this.addWindowListener(new WindowAdapter() Override public void windowClosing(WindowEvent e) System.exit(0);/0表示正常退出 ); this.addKeyListener(new KeyAdapter() Override public void keyPressed(KeyEvent e) if (e.getKeyCode() = KeyEvent.VK_ESCAPE) if(

23、GameState = 2) GameState =1; PauseConvertStart =true; else if(GameState = 1) GameState = 2; PauseConvertStart = false; else System.exit(0); if (e.getKeyCode() = KeyEvent.VK_ENTER) if (GameState = 0) gs.bst.stop(); gameView.dispose(); gameView = new GameView(); plane.keyPre(e); Override public void k

24、eyReleased(KeyEvent e) plane.keyRepre(e); ); this.setLocationRelativeTo(null); this.setVisible(true); Override public void paint(Graphics g) /在窗体中画东西 系统自动调用 if (GameState = 2) gs.bst.suspend(); return; if (GameState = 1 & PauseConvertStart) gs.bst.resume(); gs.tag = true; if(!plane.isLife | !boos2.i

25、sLife) & isOver) backGround.draw(g); score.draw(g); isOver =false; if (plane.isLife & boos2.isLife) backGround.draw(g); uf.draw(g); score.draw(g); if (boom !=null & boom.isLife) boom.darw(g); if(planeBoom.isLife) planeBoom.darw(g); for (int i = 0; i =700) enBullet.remove(eb); if(eb.isLife) eb.draw(g

26、); else enBullet.remove(eb); if(!score.isBoos) for (int i = 0; i enPlane.size(); i+) Enplane ep = enPlane.get(i); if(ep.isLife) ep.draw(g); else enPlane.remove(ep); else boos2.draw(g); for (int i = 0; i bullets.size(); i+) Bullet b = bullets.get(i); b.hit(enPlane,enBullet,boos2); if (b.y=0) /判断子弹超出屏幕 bullets.remove(b); /把子弹从弹夹中移除 b.draw(g); if(!plane.isLife | !boos2.isLife) if (!plane.isLife) g.drawImage(go, 177, 200, this); if (!boos2.isLife) g.drawImage(vi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1