飞机大战实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

}

相关文档
最新文档