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

📄 flypig.java

📁 一个关于J2ME的确游戏
💻 JAVA
字号:
import javax.microedition.lcdui.*;
import java.io.IOException;

public class FlyPig extends Actor {

    protected int offsetMoveY;
    protected int gasEnergyMax, gasEnergy;
    private long  attackTime,reGasTime;

    private Image image1;
    private SpriteClip spriteClip;

    public FlyPig(PigWorld pWorld) {
        super(pWorld);

        try {
            image1 = Image.createImage("/images/flypig.png");

        } catch (IOException e) {
            e.printStackTrace();
        }
        spriteClip = new SpriteClip();
        spriteClip.init(image1, 8);

        spriteClip.setArray(0, 23, 26, 0, 81, 2, 0); //普通状态
        spriteClip.setArray(1, 23, 26, 0, 159, 2, 0);
        spriteClip.setArray(2, 23, 26, 0, 133, 2, 0);
        spriteClip.setArray(3, 30, 40, 0, 41, 2, 0); //普通攻击状态
        spriteClip.setArray(4, 23, 30, 89, 66, 2, 0); //戴上防毒面具状态
        spriteClip.setArray(5, 23, 30, 89, 156, 2, 0);
        spriteClip.setArray(6, 23, 30, 89, 126, 2, 0);
        spriteClip.setArray(7, 30, 41, 0, 0, 2, 0); //戴上防毒面具攻击状态

    }

    public void init(int state, int startX, int startY, int director) {
        energyMax = 1000;
        energy = energyMax;
        gasEnergyMax = 1000;
        gasEnergy = gasEnergyMax;


        spriteClip.setState(state, 200);
        setSize(spriteClip.w, spriteClip.h);
        super.init(Actor.FLYPIG, state, startX, startY, director, 0, 0);

    }

    public void render(Graphics g, int offsetX, int offsetY) {
        spriteClip.drawClip(g, x + offsetX, y + offsetY - offsetMoveY);
    }

    public void cycle() {
        super.cycle();

        if (isFire) {
            if (state >= 0 && state <= 2) {
                state = 3;
            }
            if (state >= 4 && state <= 6) {
                state = 7;
            }

            if (attackTime == 0) {
                attackTime = System.currentTimeMillis();
                spriteClip.setState(state, 200);
                setSize(spriteClip.w, spriteClip.h);
                offsetMoveY = 14;
                speedX=0;
                speedY=0;
                world.getNpcFromPool().init(Actor.daoju,9,x+10,y-14,Actor.UP,0,3);

            }
            if (System.currentTimeMillis() - attackTime > 550) {
                resetState();
                attackTime = 0;
                offsetMoveY = 0;
                isFire = false;
            }
        }
        if (gasEnergy < gasEnergyMax) {
            if (reGasTime == 0) {
                reGasTime = System.currentTimeMillis();
            }
            if (System.currentTimeMillis() - reGasTime > 200) {
                gasEnergy = gasEnergy + 10;
                reGasTime = 0;
            }
        }
//
//        if (!mode) {
//            if (modeTime == 0) {
//                modeTime = System.currentTimeMillis();
//            }
//
//            if (System.currentTimeMillis() - modeTime > 3000) {
//                mode = true;
//                modeTime = 0;
//            }
//
//        }


    }


    public void resetState() {

        switch (direction) {
        case UP:
            state = 0;
            break;
        case DOWN:
            state = 0;
            break;
        case LEFT:
            state = 1;
            break;
        case RIGHT:
            state = 2;
            break;

        }
        spriteClip.setState(state,200);
        setSize(spriteClip.w, spriteClip.h);

    }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -