import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
//import java.unit.*;
import java.io.*;
//简单的动画canvas by sword2008@程序之巢
public class test2 extends MIDlet{
private Display display;
public test2(){
}
public void startApp(){
new test(Display.getDisplay(this)).start();}
public void pauseApp(){ }
public void destroyApp(boolean unkowmn){ }
class test extends GameCanvas implements Runnable
{
//////////////////////////////////////
private Display display;
private long frameDelay;
private boolean sleeping;
// private Random rand;
private Sprite ken;
//////////////////////////////////////
public test(Display d){
super(true);
display=d;
frameDelay=30; }
//==========================================
public void start(){
display.setCurrent(this);
// rand=new Random();
try{ken= new Sprite(Image.createImage("/ken2.png"),64,58);}
catch(Exception e){System.out.println(e.toString());}
//------------------------------------------
sleeping=false;
Thread t=new Thread(this);
t.start();
}
//------------------------------------------
public void run(){
Graphics g=getGraphics();
while(!sleeping){
update();
draw(g);
try{Thread.sleep(frameDelay);}
catch(Exception e){}
}
}
private void draw(Graphics g){
g.setColor(0x000000);
g.fillRect(0,0,getWidth(),getHeight());
//
ken.paint(g);
flushGraphics();
}
private void update(){
for(int i=0;i<3;i++)
{if(i==1)
ken.prevFrame();
else
ken.nextFrame();
}
}
}
}
/*注意:图片png必须按照大小生成,每个为64*58
例如改成30*20他会提示出NULLPOINT之类的错误!
另外:flushGraphics();不可少,至于为什么,我也不清楚,研究中
//这个问题我解决了
饭缸(81674639) 10:12:12
gamecanvas自动使用了双缓存,不用他你画的东西在后台缓存里面,不会显示的
我的图片是PNG直接改后缀名的,没办法BLOG不支持PNG所以请转换一下成为PNG
*/
评论