本科实验报告
课程名称:Java语言程序设计
实验项目:TankWar
实验地点:致远楼B403
专业班级:软件工程1219 学号:2012005496 学生姓名:柴丁方
指导教师:任少斌
2014年 1 月7 日
import java.awt.*;
import java.awt.event.*;
public class TankWarClient extends Frame {
//构造游戏开始的界面
public void KaiShiJieMian() {
this.setLocation(400,200); //游戏窗口的左上点在屏幕的位置
this.setSize(800, 600);//游戏窗口的尺寸
//使按窗口的“X”时,可以关闭程序
较上一次实验添加的代码段为:
public void paint (Graphics g) {
Color c = g.getColor();//color类是 java。
awt 中的,因此可以直接 color c
g.setColor(Color.green);// 类 java.awt.Graphics 中的方法,将此图形上下文的当前颜色设置为指定颜色。
g.fillOval(50, 50, 30, 30);//int x, int y,int width,int height,分别为坐标与椭圆的长宽
g.setColor(c);
}
变更2:
较上一次实验添加的代码段为:
1.更改如下代码段中的“常量值”为“x”“y”,使所填充的椭圆位置可以随值改变,为静态的图形动起来打下了基础。
static int x=50,y=50;
实验四:从版本0.4到版本0.41
变更1:
变更2:
较上一次实验添加的代码段为:
1.
public class TankWarClient extends Frame {
Image offScreenImage = null;}//先把内存的offScreenImage清空
较上一次实验添加的代码段为:1.TankWarClient类中:
2.
3.
较上一次实验修改的代码段为:
public class Tank {
public static final int XSPEED = 5;
public static final int YSPEED = 5;
private int x, y;
private boolean bL=false, bU=false, bR=false, bD = false;
enum Direction {L, LU, U, RU, R, RD, D, LD, STOP};
private Direction dir = Direction.STOP;
//此处为构造函数。
并且将x,y定义为Tank出现的位置
public Tank(int x, int y) {
Tank类中的修改:
较上一次实验修改的代码段为:
在TankWarClient中添加了
//释放:处理键抬起的消息
public void keyReleased(KeyEvent e) { myTank.keyReleased(e);
}
public class TankWarClient extends Frame { public static final int GAME_WIDTH=800;
public static final int GAME_HEIGTH=600;
Tank myTank = new Tank(50,50,this);
(该截图可以体现:运动方向可以斜向,即为8方向;子弹可以向发射)
实验十二:从版本1.1到版本1.2
较上一次实验修改的代码段为:
1.switch(ptDir) {
case L:
(从该截图可以看到新添加的炮管,炮管能够做到随坦克运动方向移动,当坦克静止时仍可以向炮管指示的方向开炮)
(从该截图可以看到第二发炮弹的发射已经不会影响第一颗炮弹的重画,窗口左上角也多了对开火次数的统计)
(成为窗口内的子弹数目)
(以上即为运行效果)
综上此次比对主要完善的内容是:加入区别敌我的量good
(如图蓝色坦克被击中后,自行消失)。