在J2ME程序開發過程中經常需要實現游戲動畫,例如簡單的文字閃動,復雜的游戲界面變化等等,下面簡單的介紹一下動畫的原理,並附實現代碼。
<!-- frame contents -->
<!-- /frame contents -->
動畫原理就是利用人的視覺暫留的生理特性,實現出來的一種假象。下面的代碼就是不斷的變化繪制的內容,實現文字的閃動。
程序的邏輯:每隔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();
}
}
}
而復雜的動畫和該程序比較,只是每次繪制不同的圖片,把線程中的動作做的復雜一下罷了。