?? tanksprite.java
字號:
import java.io.IOException;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
//定義代表坦克的精靈類
public class TankSprite extends Sprite {
protected int m_nDir;
//最后移動到的位置的X和Y坐標
protected int m_nLastMovX = 0;
protected int m_nLastMovY = 0;
//移動的速度
protected int m_nSpeed = 0;
public BulletSprite m_Bullet;
//構造函數
public TankSprite(Image image, int frameWidth, int frameHeight) {
super(image, frameWidth, frameHeight);
defineReferencePixel(frameWidth / 2, frameHeight / 2);
setVisible( false );
try{
//創建子彈類
Image img = Image.createImage("/bullets.png");
m_Bullet = new BulletSprite(img,3,3);
}
catch(IOException ioe){}
catch(Exception e){}
}
// 設置并顯示代表坦克的精靈對象的方法
public void Start( int nX, int nY, int nDir, int nSpeed ){
SetDir( nDir );
setRefPixelPosition( nX, nY );
m_nSpeed = nSpeed;
setVisible( true );
}
// 不顯示代表坦克的精靈對象的方法
public void Stop() {
setVisible(false);
}
public void Logic(){
m_Bullet.Logic();
}
//設置坦克的方向
public void SetDir( int nDir ){
m_nDir = nDir;
switch( m_nDir ){
case 0:
setTransform(TRANS_NONE);
break;
case 1:
setTransform(TRANS_ROT90);
break;
case 2:
setTransform(TRANS_ROT180);
break;
default:
setTransform(TRANS_MIRROR_ROT270);
break;
}
}
//坦克移動的方法
public void Move(int nX, int nY) {
int nToX = getRefPixelX() + nX;
int nToY = getRefPixelY() + nY;
m_nLastMovX = nX;
m_nLastMovY = nY;
setRefPixelPosition( nToX, nToY );
}
//坦克后退的方法
public void MoveBack() {
Move( -m_nLastMovX, -m_nLastMovY );
m_nLastMovX = 0;
m_nLastMovY = 0;
}
//創建子彈
public void CreateBullet(){
if( m_Bullet.isVisible() )
return;
m_Bullet.setVisible(true);
int nX = getRefPixelX();
int nY = getRefPixelY();
m_Bullet.Start( nX, nY, m_nDir, 3 );
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -