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

📄 democanvas.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 JAVA
字号:
package com.j2medev.chapter5;
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
import java.io.*;

public class DemoCanvas
        extends GameCanvas
        implements CommandListener, Runnable {
    private Image imgA,imgB;
    private Image mapImg0,mapImg1;
    private TiledLayer tiledLayer0;
    private TiledLayer tiledLayer1;
    private LayerManager layers;
    private Sprite spriteA,spriteB;
    private int keyState;
    private boolean collideSta;
    private Graphics g;
    private int Ypos0;
    private int Ypos1;
    
    public DemoCanvas() {
        super(false);
        this.setFullScreenMode(true);
        try {
            imgA = Image.createImage("/img0.png");
            imgB = Image.createImage("/img1.png");
            mapImg0 = Image.createImage("/map0.png");
            mapImg1 = Image.createImage("/map1.png");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
        tiledLayer0 = new TiledLayer(9,20,mapImg0,28,28);
        tiledLayer1 = new TiledLayer(12,11,mapImg1,21,40);
        tiledLayer1.setPosition(-6,0);
//        int[][] map0 = {
//              { 1,1,1,1,1,1,1,1,1},
//              { 1,1,1,1,1,1,1,1,1},
//              { 1,1,1,1,1,1,1,1,1},
//              { 1,1,1,-1,-1,-1,-1,1,1},
//              { 1,1,1,-1,-1,-1,-1,1,1},
//              { 1,1,1,-1,-1,-1,-1,1,1},
//              { 1,1,1,-1,-1,-1,-1,1,1},
//              { 1,1,1,-1,-1,-1,-1,1,1},
//              { 1,1,1,-1,-1,-1,-1,1,1},
//              { 1,1,1,1,1,1,1,1,1},
//              { 1,1,1,1,1,1,1,1,1}
//
//        };
        
        int[][] map0 = {
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1},
            { 1,1,1,1,1,1,1,1,1}
            
        };
        
        
        int[][] map1 = {
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
            { 1,0,0,0,0,0,0,0,0,0,0,2},
        };
        tiledLayer0.createAnimatedTile(2);
        
        for (int i = 0; i < map0.length; i++)
            for(int j = 0;j<map0[i].length;j++)
                tiledLayer0.setCell(j, i, map0[i][j]);
        
//    for (int i = 0; i < map1.length; i++)
//        for(int j = 0;j<map1[i].length;j++)
//        tiledLayer1.setCell(j, i, map1[i][j]);
//System.out.println(this.getWidth()+" "+this.getHeight());
        
        spriteA = new Sprite(imgA,110,89);
        spriteB = new Sprite(imgB,80,80);
        
        spriteA.setPosition(50,100);
        spriteB.setPosition(50,0);
        
        layers= new LayerManager();
//        layers.append(tiledLayer1);
//        layers.append(spriteA);
//        layers.append(spriteB);
        layers.append(tiledLayer0);
//        tiledLayer1.setPosition(0,50);
        
        Ypos0 = tiledLayer0.getHeight() - this.getHeight();
//        Ypos1 = tiledLayer1.getHeight() - this.getHeight();
//        System.out.println(Ypos1);
        // spriteA.defineCollisionRectangle(0,0,110,67);
        
        this.setFullScreenMode(true);
        setCommandListener(this);
        addCommand(new Command("Exit", Command.EXIT, 1));
        
        
        new Thread(this).start();
    }
    
    public void check(){
        if(spriteA.collidesWith(spriteB,true)) collideSta = true;
        else collideSta = false;
    }
    public void run() {
        while (true) {
            // repaint();
            this.g = getGraphics();
            keyState = getKeyStates();
            
            if((keyState & this.LEFT_PRESSED)!=0){
                spriteA.move(-3,0);
                
            }
            if((keyState & this.RIGHT_PRESSED)!=0){
                spriteA.move(3,0);
            }
            if((keyState & this.UP_PRESSED)!=0){
                spriteA.move(0,-3);
            }
            if((keyState & this.DOWN_PRESSED)!=0){
                spriteA.move(0,3);
                
            }
            check();
            if(tiledLayer0.getAnimatedTile(-1)==2) 
                tiledLayer0.setAnimatedTile(-1,1);
            else 
                tiledLayer0.setAnimatedTile(-1,2);
            this.draw(g);
            
            try {
                Thread.sleep(33);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    public void draw(Graphics g) {
        
        g.setColor(0);
        g.fillRect(0,0,this.getWidth(),this.getHeight());
        
//            g.setColor(0);
//            if(collideSta == false) g.drawString("未相撞",100,190,0);
//            else g.drawString("相撞!",100,190,0);
//            tiledLayer0.paint(g);
//            tiledLayer1.paint(g);
        //spriteB.paint(g);
//            spriteB.nextFrame();
        
        
        spriteA.nextFrame();
        if(Ypos0<=0) Ypos0 = tiledLayer0.getHeight() - this.getHeight();
        layers.setViewWindow(0,Ypos0,this.getWidth(),this.getHeight());
        Ypos0 = Ypos0-2;
        layers.paint(g,0,0);
        spriteA.paint(g);
        flushGraphics();
        
    }
    
    public void keyPressed(int keyCode) {
        
    }
    
    public void commandAction(Command command, Displayable displayable) {
        if (command.getCommandType() == Command.EXIT) {
            GameDemo.quitApp();
        }
    }
}

⌨️ 快捷键说明

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