在J2ME程序開發過程中經常需要實現游戲動畫,例如簡單的文字閃動,復雜的游戲界面變化等等,下面簡單的介紹一下動畫的原理,并附實現代碼。
動畫原理就是利用人的視覺暫留的生理特性,實現出來的一種假象。下面的代碼就是不斷的變化繪制的內容,實現文字的閃動。
程序的邏輯:每隔0.2秒變換一次繪制的內容,如果屏幕上沒有繪制文字,則繪制,否則繪制文字。
實現代碼如下:
package welcomecanvas;
import javax.microedition.lcdui.*;
publicclass DongHuaCanvas extends Canvas implements Runnable { //標志是否繪制字符串 boolean b = true;
public DongHuaCanvas() { //啟動線程 Thread t = new Thread(this); t.start(); }
protected void paint(Graphics g) { //清屏 g.setColor(255,255,255); g.fillRect(0,0,getWidth(),getHeight()); g.setColor(0,0,0);
//根據標志變量繪制字符串
if(b == true){ g.drawString("閃爍的文字",50,50,Graphics.LEFT | Graphics.TOP); } }
/** * 線程方法,每隔0.2秒改變一次標志變量,并重新繪制字符串 */
public void run(){ while(true){ //等待0.2秒 try{ Thread.sleep(200); }catch(Exception e){} //改變標志變量 b = !b; //重新繪制 repaint(); } } } 而復雜的動畫和該程序比較,只是每次繪制不同的圖片,把線程中的動作做的復雜一下罷了。
|