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:12gamecanvas自动使用了双缓存,不用他你画的东西在后台缓存里面,不会显示的 我的图片是PNG直接改后缀名的,没办法BLOG不支持PNG所以请转换一下成为PNG */

评论