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

📄 maincanvas.java

📁 手机拼图游戏... 成品..我上载..只为了下一个拼图游戏代码来参考一下
💻 JAVA
字号:
/*
 * Created on 2005-3-14
 * Author: Xuefeng, Copyright (C) 2005, Xuefeng.
 */
package com.crackj2ee.j2megame.puzzle;

import java.io.IOException;
import javax.microedition.lcdui.*;

/**
 * MainCanvas.
 *
 * @author Xuefeng
 */
public class MainCanvas extends Canvas implements CommandListener, Updatable {

    private final int IMAGE_WIDTH = 50;

    private Document document;
    private Command exit = new Command("Exit", Command.EXIT, 1);

    public void update() {
        repaint();
    }

    public void commandAction(Command c, Displayable displayable) {
        if(c==exit)
            PuzzleMIDlet.quitApp();
    }

    public MainCanvas(String imageName) {
        setCommandListener(this);
        addCommand(exit);
        // load all images:
        Image[] images = new Image[16];
        for(int i=0; i<16; i++) {
            try {
                images[i] = Image.createImage("/image/" + imageName + "/" + i + ".png");
            }
            catch(IOException ioe) {
                images[i] = null;
            }
        }
        document = new Document(this, images, 3, 3);
    }

    protected void paint(Graphics g) {
        g.fillRect(0,0,getWidth(),getHeight());
        int state = document.getState();
        if(state==Document.PUZZLE_STATE) {
            // paint the images:
            for(int x=0; x<4; x++) {
                for(int y=0; y<4; y++) {
                    //System.out.println("paint image (" + x + ", " + y + ")");
                    Image image = document.getImage(x, y);
                    int m = x*IMAGE_WIDTH;
                    int n = y*IMAGE_WIDTH;
                    //System.out.println("paint image at (" + m + ", " + n + ")");
                    if(image!=null) {
                        g.drawImage(image, y*IMAGE_WIDTH, x*IMAGE_WIDTH, Graphics.LEFT|Graphics.TOP);
                    }
                    else {
                        g.setColor(0x000000);
                        g.fillRect(y*IMAGE_WIDTH, x*IMAGE_WIDTH, IMAGE_WIDTH, IMAGE_WIDTH);
                    }
                }
            }
            // draw line:
            g.setColor(0xffffff);
            for(int i=0; i<=4; i++) {
                g.drawLine(0, i*IMAGE_WIDTH, 4*IMAGE_WIDTH, i*IMAGE_WIDTH);
                g.drawLine(i*IMAGE_WIDTH, 0, i*IMAGE_WIDTH, 4*IMAGE_WIDTH);
            }
        }
        else {
            for(int x=0; x<4; x++) {
                for(int y=0; y<4; y++) {
                    Image image = document.getImage(x, y);
                    g.drawImage(image, y*IMAGE_WIDTH, x*IMAGE_WIDTH, Graphics.LEFT|Graphics.TOP);
                }
            }
        }
    }

    protected void keyReleased(int keyCode) {
        if(keyCode==KEY_NUM0) {
            document.setPuzzleState();
        }
    }

    protected void keyPressed(int keyCode) {
        switch(keyCode) {
        case KEY_NUM1:
            document.move(0,0);
            break;
        case KEY_NUM2:
            document.move(0,1);
            break;
        case KEY_NUM3:
            document.move(0,2);
            break;
        case KEY_NUM4:
            document.move(1,0);
            break;
        case KEY_NUM5:
            document.move(1,1);
            break;
        case KEY_NUM6:
            document.move(1,2);
            break;
        case KEY_NUM7:
            document.move(2,0);
            break;
        case KEY_NUM8:
            document.move(2,1);
            break;
        case KEY_NUM9:
            document.move(2,2);
            break;
        // show original image:
        case KEY_NUM0:
            document.setImageState();
            break;
        }
    }

}

⌨️ 快捷键说明

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