Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100737
  • 博文数量: 52
  • 博客积分: 2095
  • 博客等级: 大尉
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-08 13:29
文章分类

全部博文(52)

文章存档

2010年(1)

2009年(24)

2008年(27)

我的朋友

分类: Java

2008-05-19 11:25:13

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import myclass.MainCanvas;


public class MyCartoon3Midlet extends MIDlet {
    public MainCanvas m_MainCanvas;

    public MyCartoon3Midlet() {
        super();
        // TODO Auto-generated constructor stub

    }

    protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
        // TODO Auto-generated method stub


    }

    protected void pauseApp() {
        // TODO Auto-generated method stub


    }

    protected void startApp() throws MIDletStateChangeException {
        // TODO Auto-generated method stub

        m_MainCanvas = new MainCanvas();
        
        Display.getDisplay(this).setCurrent(m_MainCanvas);
        while(true){
            m_MainCanvas.repaint();
        }
    }

}

下面是实现的类

 

 

package myclass;

import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;

public class MainCanvas extends Canvas{
    public LayerManager m_LManager;
    public TiledLayer m_TLayer;
    public Sprite m_MySprite;
    public long time1,time2;
    public MainCanvas(){
        super();
        time1 = System.currentTimeMillis();
        
        try{
            Image image = Image.createImage("/fa.png"); //Sprite图片

            
            m_MySprite=new Sprite(image ,24,30);//分成24*30的小块

            m_MySprite.setFrame(0);
            int nposx=getWidth()/2-25;
            int nposy=getHeight()/2 -25;
            
            m_MySprite.setPosition(nposx, nposy);
            
         image=Image.createImage("/map.png");//背景图片

            
            m_TLayer= new TiledLayer(5,5,image,40,40);//40*40的小块

            nposx=(getWidth()-5*40)/2;
            nposy=(getHeight()-5*40)/2;
            m_TLayer.setPosition(nposx, nposy);
            SetCells();//自定义函数填充背景

            
        }
        catch(IOException e){}
        m_LManager= new LayerManager();
        
        m_LManager.append(m_MySprite);
        m_LManager.append(m_TLayer);
        
    }
    
    public void SetCells(){
        m_TLayer.setCell(0, 0, 3);
        m_TLayer.setCell(0, 1, 4);
        m_TLayer.setCell(0, 2, 2);
        m_TLayer.setCell(0, 3, 1);
        m_TLayer.setCell(0, 4, 4);
        m_TLayer.setCell(1, 0, 4);
        m_TLayer.setCell(1, 1, 2);
        m_TLayer.setCell(1, 2, 3);
        m_TLayer.setCell(1, 3, 3);
        m_TLayer.setCell(1, 4, 2);
        m_TLayer.setCell(2, 0, 3);
        m_TLayer.setCell(2, 1, 2);
        m_TLayer.setCell(2, 2, 1);
        m_TLayer.setCell(2, 3, 2);
        m_TLayer.setCell(2, 4, 4);
        m_TLayer.setCell(3, 0, 2);
        m_TLayer.setCell(3, 1, 3);
        m_TLayer.setCell(3, 2, 2);
        m_TLayer.setCell(3, 3, 1);
        m_TLayer.setCell(3, 4, 3);
        m_TLayer.setCell(4, 0, 2);
        m_TLayer.setCell(4, 1, 4);
        m_TLayer.setCell(4, 2, 2);
        m_TLayer.setCell(4, 3, 4);
        m_TLayer.setCell(4, 4, 1);
    }

    protected void paint(Graphics g) {
        
        // TODO Auto-generated method stub

        time2= System.currentTimeMillis();//下面实现Sprite在屏幕中转圈

        if (time2-time1>100){
            time1 =time2;
            int n=m_MySprite.getFrame();
            n++;
            if(n>11)
                n=0;
            if(n<3){
                m_MySprite.setPosition(m_MySprite.getX(), m_MySprite.getY()-2);
            }
            else if(n<6){
                m_MySprite.setPosition(m_MySprite.getX()+2, m_MySprite.getY());
            }
            else if(n<9){
                m_MySprite.setPosition(m_MySprite.getX(), m_MySprite.getY()+2);
            }
            else {
                m_MySprite.setPosition(m_MySprite.getX()-2, m_MySprite.getY());
            }
            
            m_MySprite.setFrame(n);
        }
        g.getColor();
        g.fillRect(0, 0, getWidth(), getHeight());
        //m_TLayer.paint(g);

        //m_MySprite.paint(g);

        //m_MySprite.setTransform(1);

        m_LManager.setViewWindow(5, 5, 150, 170);
        m_LManager.paint(g, 10, 15);
        
        
    }
    

}

阅读(937) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~