📄 enemysprite.java
字号:
import javax.microedition.lcdui.Image;
/*
* Created on 2005-7-15
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class EnemySprite extends MySprite {
private Image enemyImg;
private int w,h;
public EnemySprite(Image enemyImg,int w,int h)
{
super(enemyImg, w, h);
this.enemyImg=enemyImg;
this.w=w;
this.h=h;
//System.out.println("MainRole.MainRole()");
init();
}
public void init()
{
//System.out.println("MainRole.init()");
//this.setCollision(true);
this.setName("怪物");
setMaxX(SceneLib.scenes[SceneLib.currentSceneIndex].getWalkMaxX()); //设置移动范围
setMaxY(SceneLib.scenes[SceneLib.currentSceneIndex].getWalkMaxY());
setMinX(SceneLib.scenes[SceneLib.currentSceneIndex].getWalkMinX());
setMinY(SceneLib.scenes[SceneLib.currentSceneIndex].getWalkMinY());
}
public void initDirect()
{
this.setFrameSequence(new int[]{0,1,2,3});
currentDirect=DIR_UP;
}
public void changeDirect(int direct)
{
if(direct==DIR_UP)
{
if(currentDirect!=DIR_UP)
{
currentDirect=direct;
}
}
if(direct==DIR_LEFT)
{
if(currentDirect!=DIR_LEFT)
{
currentDirect=direct;
}
}
if(direct==DIR_RIGHT)
{
if(currentDirect!=DIR_RIGHT)
{
currentDirect=direct;
}
}
if(direct==DIR_DOWN)
{
if(currentDirect!=DIR_DOWN)
{
currentDirect=direct;
}
}
}
public void run()
{
while(isAutoMoving)
{
if(pointCreator!=null)
{
Point point=pointCreator.getPoint();
if(point.x-this.getX()<-speed)
{
this.move(-speed,0);
walking=true;
lastMoveX=-speed;
}
if(point.x-this.getX()>speed)
{
this.move(speed,0);
walking=true;
lastMoveX=speed;
}
if(point.y-this.getY()<-speed)
{
this.move(0,-speed);
walking=true;
lastMoveY=-speed;
}
if(point.y-this.getY()>speed)
{
this.move(0,speed);
walking=true;
lastMoveY=speed;
}
this.setPrevMoveArea(new Box(this.getCollisionRectanglePosition().x+lastMoveX,this.getCollisionRectanglePosition().y+lastMoveY,this.getCollisionRectanglePosition().w,this.getCollisionRectanglePosition().h));
if(!canCrossBlock) //如果不能越过障碍物
{
haveCollision=checkCollision();
if(haveCollision)
{
this.move(-lastMoveX,-lastMoveY); //监测到碰撞,取消最后一次移动
lastMoveX=0;
lastMoveY=0;
}
}
if(continueFrame)
{
this.nextFrame();
}
}
try {
Thread.sleep(1000/60);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public EnemySprite clone()
{
EnemySprite enemy=new EnemySprite(enemyImg,w,h);
enemy.canChat=this.canChat;
enemy.canMove=this.canMove;
enemy.continueFrame=this.continueFrame;
enemy.currentDirect=this.currentDirect;
enemy.isMainRole=this.isMainRole;
enemy.maxX=this.maxX;
enemy.maxY=this.maxY;
enemy.minX=this.minX;
enemy.minY=this.minY;
enemy.name=this.name;
enemy.speed=this.speed;
//enemy.walking=this.walking;
return enemy;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -