飞机大战实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
飞机大战实验报告
专业:网络工程132班
学号:139074298
:仁强
计算机科学与技术学院二零一六年十二月
一、软件运行所需要的软硬件环境
本系统是以Windows系统为操作平台,用Java编程语言来实现本系统所需功能的。本机器的配置如下:
处理器:CORE i7
主频:1.2Hz以上
存:4G以上
硬盘:HHD 50G
编程语言:Java
开发环境:windows7
开发软件:Eclipse Mars
二、游戏流程
1.用户打开游戏,进入开始菜单。
2.用户点击开始游戏按钮,进入游戏界面;
3.用户通过触屏方式控制玩家飞机上下左右移动,躲避与子弹相撞;
4.游戏失败后,显示本次游戏得分,用的秒数和水平;
5.退出游戏
三、主要代码
1、准备代码设置窗口使用双缓冲使飞机不闪烁
Constant设置窗口大小
package .ahut.准备代码;
public class Constant {
public static final int GAME_WIDTH = 350;
public static final int GAME_HEIGHT = 600;
}
package .ahut.准备代码;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
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 block
e.printStackTrace();
}
return bi;
}
}
package .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 Frame{
public void lauchFrame() {
setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);
setLocation(100, 100);
setVisible(true);
new PaintThread().start();
addWindowListener(new WindowAdapter() {
Override
public 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, Constant.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 block
e.printStackTrace();
}
}
}
}
}
主代码
飞机:
package .ahut.plane;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import .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();
}
}
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.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;
}
}