?? shellsprite.java~9~
字號:
package tankgame2007;
import java.applet.Applet;
import java.awt.Image;
import java.awt.*;
public class ShellSprite extends ImageSprite{
int AppletWidth, AppletHeight;
int shellWidth, shellHeight;
int launchDirection;
Image shellImg;
Applet GameApplet;
int speed;
public ShellSprite(Image shellImg,
int launchDirection,
int speed, //炮彈速度
Applet GameApplet) {
super(0, 0); //調用父類的創建方法
this.shellImg = shellImg;
this.launchDirection = launchDirection;
this.GameApplet = GameApplet;
this.speed = speed;
AppletWidth = GameApplet.getWidth();
AppletHeight = GameApplet.getHeight();
setVisible(false);
setMove(false);
}
public void updateState(){
shellWidth = shellImg.getWidth(GameApplet);
shellHeight = shellImg.getHeight(GameApplet);
System.out.println("X,Y"+X+","+Y);
//移動炮彈
switch (launchDirection) {
case 0: //左
if (X < (-shellWidth)){//設定炮彈的左邊界
setVisible(false); //設定炮彈Sprite為不可見
setMove(false); //設定炮彈Sprite為不可移動
}
else{
X = this.getX() - speed;
}
break;
case 1: //右
if (X > (AppletWidth + shellWidth)){ //設定炮彈的右邊界
setVisible(false); //設定炮彈Sprite為不可見
setMove(false); //設定炮彈Sprite為不可移動
}
else{
X = this.getX() + speed;
}
break;
case 2: //上
if (Y < (-shellHeight)){//設定炮彈的上邊界
setVisible(false); //設定炮彈Sprite為不可見
setMove(false); //設定炮彈Sprite為不可移動
}
else{
Y = this.getY() - speed;
}
break;
case 3: //下
if (Y > (AppletHeight + shellHeight)){//設定炮彈的下邊界
setVisible(false); //設定炮彈Sprite為不可見
setMove(false); //設定炮彈Sprite為不可移動
}
else{
Y = this.getY() + speed;
}
break;
}
//設定炮彈圖像的最新位置
this.setLocation(X, Y);
}
public int getShellDirection() {
return launchDirection;
}
public void setShellDirection(int direction) {
this.launchDirection = direction;
}
//覆蓋父類方法
public void paintSprite(Graphics g) { //繪制Sprite
if (visible == true) {
g.drawImage(shellImg, X, Y, Game);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -