正文

J2ME 简单的动画Canvas-ken街头霸王2006-09-11 10:18:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/18461.html

分享到:


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

 

*/

阅读(3193) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册