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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(飞机大战实验报告.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

飞机大战实验报告.doc

1、飞机大战实验报告专业:网络工程 132 班学号:139074298姓名:孙 仁 强计算机科学与技术学院二零一六年十二月一、软件运行所需要的软硬件环境 本系统是以 Windows 系统为操作平台,用 Java 编程语言来实现本系统所需功能的。 本机器的配置如下: 处理器:CORE i7主频:1.2Hz 以上 内存:4G 以上 硬盘:HHD 50G编程语言:Java 开发环境:windows7 开发软件:Eclipse Mars二、游戏流程1. 用户打开游戏,进入开始菜单。 2. 用户点击开始游戏按钮,进入游戏界面; 3. 用户通过触屏方式控制玩家飞机上下左右移动,躲避与子弹相撞; 4. 游戏失败

2、后,显示本次游戏得分,用的秒数和水平; 5. 退出游戏三、主要代码1、准备代码 设置窗口 使用双缓冲使飞机不闪烁Constant 设置窗口大小package com.ahut.准备代码;public class Constant public static final int GAME_WIDTH = 350;public static final int GAME_HEIGHT = 600;package com.ahut.准备代码;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.IOExcep

3、tion;import .URL;public class GameUtil private GameUtil () public static Image getImage(String path) BufferedImage bi = null;try URL u = GameUtil.class.getClassLoader().getResource(path);bi = javax.imageio.ImageIO.read(u); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();re

4、turn bi;package com.ahut.准备代码;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class MyFrame extends Framepublic void lauchFrame() setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT); setLocation(100, 100

5、);setVisible(true);new PaintThread().start();addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent e) System.exit(0););private Image offScreenImage = null; public void update(Graphics g) if (offScreenImage = null)offScreenImage = this.createImage(Constant.GAME_WIDTH, Co

6、nstant.GAME_HEIGHT);Graphics gOff = offScreenImage.getGraphics();paint(gOff);g.drawImage(offScreenImage, 0, 0, null);class PaintThread extends Thread public void run() while (true) repaint(); try Thread.sleep(40); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace(); 主

7、代码飞机:package com.ahut.plane;import java.awt.Graphics;import java.awt.event.KeyEvent;import com.ahut.准备代码.GameUtil;public class Plane extends GameObject private boolean left, up, right, down;private boolean live = true;public void draw(Graphics g) if (live) g.drawImage(img, (int)x, (int)y, null);move

8、();public void addDirection(KeyEvent e) switch (e.getKeyCode() case KeyEvent.VK_LEFT: /左left = true; break;case KeyEvent.VK_UP: /上up = true; break;case KeyEvent.VK_RIGHT: /右right = true; break;case KeyEvent.VK_DOWN: /下down = true; break;default: break;public void minusDirection(KeyEvent e) switch (e

9、.getKeyCode() case KeyEvent.VK_LEFT: /左left = false; break;case KeyEvent.VK_UP: /上up = false; break;case KeyEvent.VK_RIGHT: /右right = false; break;case KeyEvent.VK_DOWN: /下down = false; break;default: break;public void move() if (left) x -= speed;if (right) x += speed;if (up) y -= speed;if (down) y

10、+= speed;public Plane(String imgpath, double x, double y) this.img = GameUtil.getImage(imgpath);this.width = img.getWidth(null);this.height = img.getHeight(null);this.x = x;this.y = y;public Plane() public void setLive(boolean live) this.live = live;public boolean isLive() return live;子弹:package com

11、.ahut.plane;import java.awt.Color;import java.awt.Graphics;import java.awt.Rectangle;import com.ahut.准备代码.Constant;public class Bullet extends GameObject double degree;public Bullet() degree = Math.random() * Math.PI * 2;x = Constant.GAME_WIDTH / 2; y = Constant.GAME_HEIGHT / 2;width = 10;height = 1

12、0;public Rectangle getRect() return new Rectangle(int)x, (int)y, width, height);public void draw(Graphics g) Color oldColor = g.getColor();g.setColor(Color.yellow); g.fillOval(int)x, (int)y, width, height);x += speed * Math.cos(degree);y += speed * Math.sin(degree);if (y Constant.GAME_HEIGHT - heigh

13、t | y Constant.GAME_WIDTH - width) degree = Math.PI - degree;g.setColor(oldColor);游戏对象:package com.ahut.plane;import java.awt.Image;import java.awt.Rectangle;public class GameObject Image img;double x,y;int speed=5;int width,height;public Rectangle getRect() return new Rectangle(int)x, (int)y, width

14、, height);public GameObject(Image img, double x, double y, int speed, int width,int height) super();this.img = img;this.x = x;this.y = y;this.speed = speed;this.width = width;this.height = height;public GameObject() 主线程package com.ahut.plane;import java.awt.Color;import java.awt.Font;import java.awt

15、.Graphics;import java.awt.Image;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.util.ArrayList;import java.util.Date;import com.ahut.准备代码.GameUtil;import com.ahut.准备代码.MyFrame;public class PlaneGameFrame extends MyFrame Image bg = GameUtil.getImage(“image/ped.jpg“);Plane

16、p = new Plane(“image/plane.png“, 50, 50);ArrayList bulletList = new ArrayList();Date startTime;Date endTime;public void paint(Graphics g) g.drawImage(bg, 0, 0, null);p.draw(g);/在这里画子弹for (int i = 0; i bulletList.size(); i+) Bullet b = (Bullet)bulletList.get(i);b.draw(g);/检测跟飞机的碰撞boolean peng = b.get

17、Rect().intersects(p.getRect();if (peng) p.setLive(false); break;if (!p.isLive() int period = (int)endTime.getTime() - (int)startTime.getTime() / 1000; /转换成秒printInfo(g, “时间: “ + period + “秒“, 20, 115, 300, Color.white);switch (period / 10) case 0:case 1:printInfo(g, “菜鸟“, 40, 115, 270, Color.white);

18、break;case 2:printInfo(g, “入门“, 40, 115, 270, Color.yellow);break;case 4:printInfo(g, “精通“, 40, 115, 270, Color.white);break;case 5:printInfo(g, “大师“, 40, 115, 270, Color.white);break;/ printInfo(g, “分数: 100“, 10, 50, 50, Color.yellow);public void printInfo(Graphics g, String str, int size, int x, i

19、nt y, Color color) Color c = g.getColor();g.setColor(color);Font f = new Font(“宋体“, Font.BOLD, size);g.setFont(f);g.drawString(str, x, y);g.setColor(c);public void launchFrame() super.lauchFrame();addKeyListener(new KeyMonitor();for (int i = 0; i 10; i+) Bullet b = new Bullet();bulletList.add(b);sta

20、rtTime = new Date(); class KeyMonitor extends KeyAdapter Overridepublic void keyPressed(KeyEvent e) p.addDirection(e);Overridepublic void keyReleased(KeyEvent e) p.minusDirection(e);public static void main(String args) new PlaneGameFrame().launchFrame();四、游戏实现截图五、实验总结JAVA 和 EclipsexMars 是一款非常好的面向对象开发语言和平台,通过这一段时间的JAVA 程序开发,我感觉到尽管的是不同的语言和平台,开发程序一样需要动脑和努力,每一款软件或者游戏都不是一朝一夕能制作出的,都需要大量的构思和编程,学习好软件工程这门课对日后的编程很有用,最后还有繁琐的调试检查运行时的错误,通过这次接触JAVA 我今后会更努力的学习它。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报