南昌大学实验报告.doc
南昌大学实验报告
学生姓名: 张伟 学号: 8000105436 专业班级: 05网通1班
实验类型:□ 验证 □ 综合 ( 设计 □ 创新 实验日期:2008-3-12 实验成绩:
一、实验项目名称
类的继承与多态性的应用
二、实验目的
在实际的项目中运用类的继承、覆盖及重载。
三、实验任务
本实验在实训1的基础上完成,要求重用实训1中创建的抽象类AbstractSprite以及派生类SpriteDrawing,通过对SpriteDrawing类的继承,派生出游戏中的具体游戏精灵类:
(1)玩家控制的游戏精灵类PlayerTankSprite;
(2)敌方游戏精灵类EnemyTankSprite。
四、主要仪器设备及耗材
PC,Windows 2000,…”菜单,将图片添加到工程中;
4.在工程中新建类PlayTankSprite;
package tankgame611;
import java.applet.Applet;
import java.awt.Image;
import java.awt.event.*;
public class PlayTankSprite extends SpriteDrawing implements Runnable{
int AppletWidth,AppletHeight;
int myTankWidth,myTankHeight;
int direction;
int myTankX,myTankY;
Applet GameApplet;
Thread newThread;
static int speed=5;
public PlayTankSprite(Image[] myTankImg,int myTankX,int myTankY,
Applet GameApplet) {
super(myTankImg,myTankX,myTankY,GameApplet);
this.myTankX=myTankX;
this.myTankY=myTankY;
this.myTankImg=myTankImg;
myTankWidth=myTankImg[0].getWidth(GameApplet);
myTankHeight=myTankImg[0].getHeight(GameApplet);
this.GameApplet=GameApplet;
AppletWidth=GameApplet.getWidth();
AppletHeight=GameApplet.getHeight();
setVisible(true);
setActive(true);
GameApplet.addKeyListener(new keyAction());
}
public void updatePos(int SpiritDirection){
switch(SpiritDirection){
case 0:
myTankX=this.getX()-speed;
if(myTankX<0)
myTankX=0;
break;
case 1:
myTankX=this.getX()+speed;
if(myTankX>AppletWidth-myTankWidth)
myTankX=AppletWidth-myTankWidth;
break;
case 2:
myTankY=this.getY()-speed;
if(myTankY<0)
myTankY=0;
break;
case 3:
myTankY=this.getY()+speed;
if(myTankY>AppletHeight-myTankHeight)
myTankY=AppletHeight-myTankHeight;
break;
}
this.setPos(myTankX,myTankY);
}
//启用本类线程的接口方法
public void st