⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enemysprite.java

📁 《神州》RPG游戏引擎
💻 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 + -