在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(); } } } 而复杂的动画和该程序比较,只是每次绘制不同的图片,把线程中的动作做的复杂一下罢了。
|