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

📄 levelcanvas.java

📁 j2me实现的手机拼图游戏
💻 JAVA
字号:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.io.*;

public class LevelCanvas extends GameCanvas implements Runnable {
    private PinTu midlet;

    private Image dirImg;
    private Sprite leftSprite,rightSprite,menuSprite;
    private int selectedIndex = 0;
    private int dirY,dirX1,dirX2;
    private final int WIDTH = getWidth(),HEIGHT = getHeight(),MIDLECENTER = Graphics.HCENTER | Graphics.VCENTER;
    protected boolean stoped = false;
    private int delay = 120;
    private int levelNum = 0;

    private Thread t;

    public LevelCanvas(PinTu m) {
        super(true);
        midlet = m;
        levelNum = midlet.levelArray.length;
        setFullScreenMode(true);
    }

    protected void start(){
        try{
            dirImg = Image.createImage(midlet.imgPath + "dir.png");
        }catch(IOException e){
            System.out.println("Image loaded error!");
        }
        leftSprite = new Sprite(dirImg,10,10);
        rightSprite = new Sprite(leftSprite);
        rightSprite.setTransform(Sprite.TRANS_MIRROR);

        leftSprite.setPosition(WIDTH/2 - 40 ,HEIGHT/2);
        rightSprite.setPosition(WIDTH/2 + 40 - rightSprite.getWidth(),HEIGHT/2);

        menuSprite = new Sprite(leftSprite);
        menuSprite.setTransform(Sprite.TRANS_ROT270);
        menuSprite.setPosition(5,HEIGHT -15);
        t = new Thread(this);
        t.start();
    }

    public void run(){
        while(!stoped){
            draw();
            update();
            try{
                t.sleep(delay);
            }catch(InterruptedException e){
                //
            }
        }
    }

    protected void keyPressed(int key){
         if(key == 42){
             midlet.showMenuCanvas();
             stoped = true;
         }
    }

    private void update(){
        int keyState = getKeyStates();
        if((keyState & LEFT_PRESSED)!=0)
            selectedIndex --;
        if((keyState & RIGHT_PRESSED)!=0)
            selectedIndex ++;
        if((keyState & FIRE_PRESSED)!=0){
            midlet.selectedLevelIndex = selectedIndex;
            midlet.showMenuCanvas();
        }


        if(selectedIndex <0)
            selectedIndex = levelNum -1;
        if(selectedIndex >= levelNum)
            selectedIndex = 0;

        leftSprite.nextFrame();
        rightSprite.nextFrame();
        menuSprite.nextFrame();
    }

    private void draw(){
        Graphics g = getGraphics();
        g.setColor(255,255,255);
        g.fillRect(0,0,WIDTH,HEIGHT);

        g.setColor(0x317E3D);
        Font f = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
        g.setFont(f);
        g.drawString(midlet.levelArray[selectedIndex],WIDTH/2,HEIGHT/2-5,Graphics.HCENTER | Graphics.TOP);

        leftSprite.paint(g);
        rightSprite.paint(g);

        menuSprite.paint(g);
        flushGraphics();
    }
}

⌨️ 快捷键说明

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