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

📄 selectpiccanvas.java~159~

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

public class SelectPicCanvas extends GameCanvas implements Runnable {
    private PinTu midlet;
    private Image[] picArray;
    private int picNum;
    private int selectedIndex;
    private Image dirImg;
    private Sprite leftSprite,rightSprite,menuSprite;
    private boolean stoped = false;
    private int delay = 120;

    private final int WIDTH,HEIGHT,MIDDLECENTER = Graphics.HCENTER | Graphics.VCENTER;
    private int dirY,dirX1,dirX2;
    public SelectPicCanvas(PinTu m) {
        super(true);
        setFullScreenMode(true);
        midlet = m;
        picNum = midlet.nameArray.length;
        selectedIndex = midlet.selectedPicIndex;
        picArray = new Image[picNum];
        WIDTH = getWidth();
        HEIGHT = getHeight();
    }

    protected void start(){
        try{
            for (int i = 0; i < picNum; i++)
                picArray[i] = Image.createImage(midlet.imgPath + midlet.nameArray[i]);
            dirImg = Image.createImage(midlet.imgPath + "dir.png");
        }catch(IOException e){
                System.out.println("Image load error!");
        }
        leftSprite = new Sprite(dirImg,10,10);
        rightSprite = new Sprite(leftSprite);
        rightSprite.setTransform(Sprite.TRANS_MIRROR);

        dirY = HEIGHT/2 + picArray[0].getHeight()/2 + 10;
        dirX1 = WIDTH/2 - picArray[0].getWidth()/2;
        dirX2 = dirX1 + picArray[0].getWidth() - rightSprite.getWidth();

        leftSprite.setPosition(dirX1,dirY);
        rightSprite.setPosition(dirX2,dirY);

        menuSprite = new Sprite(leftSprite);
        menuSprite.setTransform(Sprite.TRANS_ROT270);
        menuSprite.setPosition(5,HEIGHT - 15);

        new Thread(this).start();
    }

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

    protected void keyPressed(int key){
         if(key == 42)

    }

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


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

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

    private void draw(){
        Graphics g = getGraphics();
        g.setColor(255,255,255);
        g.fillRect(0,0,WIDTH,HEIGHT);
        g.drawImage(picArray[selectedIndex],WIDTH/2,HEIGHT/2,MIDDLECENTER);

        g.setColor(0x317E3D);
        Font f = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_MEDIUM);

        g.drawString(midlet.despArray[selectedIndex],WIDTH/2,(dirY - 5),Graphics.HCENTER | Graphics.TOP);

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

        menuSprite.paint(g);
        g.drawString("’",17,HEIGHT - 20,Graphics.LEFT | Graphics.TOP);

        flushGraphics();
    }
}

⌨️ 快捷键说明

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