📄 enemytank.java
字号:
package newpackagetank;
import java.util.Random;
import javax.microedition.lcdui.Image;
//敌方坦克
public class EnemyTank extends TankSprite
{
private Random m_Random;
EnemyTank(Image image, int frameWidth, int frameHeight)
{
super(image, frameWidth, frameHeight);
m_Random = new Random();
}
//逻辑操作,控制坦克自动移动及发射炮弹
public void Logic()
{
super.Logic();
if( !isVisible() )
return;
switch( m_nDir ){
case 0:
Move( 0, -m_nSpeed );
break;
case 1:
Move( m_nSpeed, 0 );
break;
case 2:
Move( 0, m_nSpeed );
break;
default:
Move( -m_nSpeed, 0 );
break;
}
//以20分之1的概率发射炮弹
int nRs = m_Random.nextInt() % 20;
if( Math.abs(nRs) == 0 )
CreateBullet();
}
public void LogicClient(int dir)
{
super.Logic();
if( !isVisible() )
return;
switch( dir ){
case 0:
setTransform(TRANS_NONE);
MoveClient( 0, -m_nSpeed );
break;
case 1:
setTransform(TRANS_ROT90);
MoveClient( m_nSpeed, 0 );
break;
case 2:
setTransform(TRANS_ROT180);
MoveClient( 0, m_nSpeed );
break;
default:
setTransform(TRANS_MIRROR_ROT270);
MoveClient( -m_nSpeed, 0 );
break;
}
}
public void Logic(MainCanvas canvas, int number)
{
super.Logic();
if( !isVisible() )
return;
canvas.sendEnemyMessage(m_nDir,number);
switch( m_nDir ){
case 0:
Move( 0, -m_nSpeed );
break;
case 1:
Move( m_nSpeed, 0 );
break;
case 2:
Move( 0, m_nSpeed );
break;
default:
Move( -m_nSpeed, 0 );
break;
}
//以20分之1的概率发射炮弹
int nRs = m_Random.nextInt() % 20;
if( Math.abs(nRs) == 0 )
{
canvas.shootEnemyBullet(m_nDir,number);
CreateBullet();
}
}
//移动坦克,参数nX、nY分别是移动的X、Y方向的距离
public void Move(int nX, int nY)
{
super.Move(nX, nY);
RandomDir();
}
public void MoveClient(int nX, int nY)
{
super.Move(nX, nY);
}
//随机改变方向
private void RandomDir()
{
//以20分之1的概率改变方向
int nRs = m_Random.nextInt() % 50;
if( Math.abs(nRs) != 0 )
return;
int nDir = Math.abs(m_Random.nextInt()%500);
if(nDir>=0 && nDir <=49)
SetDir( 0 );
if(nDir>=50 && nDir <=249)
SetDir( 1 );
if(nDir>=250 && nDir <=399)
SetDir( 3 );
if(nDir>=400 && nDir <=499)
SetDir( 2 );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -