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); }
}
|