<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    路是爬出來的

    游戲中動畫的基礎

            這篇文章是純粹的個人看法。

            游戲的基礎是動畫,想來大家都知道。這幾天公司的項目都忙完了。很是無聊,所以就上網找了些資源,并寫兩個動畫的例子。在此貼出來,讓大家把磚頭砸我吧。^_^    

            j2me midp2.0有個game的包是用來設計有游戲用的。它提供了游戲設計的基礎控件,比如雙緩沖,精靈,圖層控制器等基礎設施,這些設施可以方便我們的設計,比如雙緩沖可以讓游戲執行流暢,精靈等,可以更好的控制角色。

           說白了。動畫的效果其實就是一幅幅圖片按照指定的時間一幅幅的換圖片而已。

           好了。看代碼吧。

    java 代碼


     


    1.    

    2. package org.wuhua.game.timer;  

    3.   

    4. import java.util.Timer;  

    5. import java.util.TimerTask;  

    6.   

    7. /** 

    8.  *  對Timer的包裝 

    9.  * @author wuhua 

       
       

    10.  */  

    11. public class TimerTaskManager {  

    12.     private Timer _timer;  

    13.   

    14.     static TimerTaskManager instace;  

    15.   

    16.     public static TimerTaskManager getInstace() {  

    17.         if (instace == null)  

    18.             instace = new TimerTaskManager();  

    19.         return instace;  

    20.     }  

    21.   

    22.     public TimerTask add(Runnable runnable, long period) {  

    23.         TimerTask task = new RunnableTimerTask(runnable);  

    24.         long delay = period;  

    25.         getTimer().schedule(task, delay, period);  

    26.         return task;  

    27.     }  

    28.   

    29.     void close() {  

    30.         if (_timer != null) {  

    31.             _timer.cancel();  

    32.             _timer = null;  

    33.         }  

    34.     }  

    35.   

    36.     private Timer getTimer() {  

    37.         if (_timer == null)  

    38.             _timer = new Timer();  

    39.         return _timer;  

    40.     }  

    41.   

    42.     static class RunnableTimerTask extends TimerTask {  

    43.         private Runnable _runnable;  

    44.   

    45.         RunnableTimerTask(Runnable runnable) {  

    46.             _runnable = runnable;  

    47.         }  

    48.   

    49.         public void run() {  

    50.             _runnable.run();  

    51.         }  

    52.     }  

    53. }  



    java 代碼


     


    1.    

    2. package org.wuhua.game;  

    3.   

    4. import java.io.IOException;  

    5. import java.util.TimerTask;  

    6.   

    7. import javax.microedition.lcdui.Canvas;  

    8. import javax.microedition.lcdui.Graphics;  

    9. import javax.microedition.lcdui.Image;  

    10.   

    11. import org.wuhua.game.timer.TimerTaskManager;  

    12.   

    13.    

    14.   

    15. /** 

    16.  * 動畫的主類 

    17.  * @author wuhua 

       
       

    18.  */  

    19. public class Game extends Canvas implements Runnable{  

    20.   

    21.     private Image source;  

    22.     private Image action[] = new Image[10];  

    23.     private int bgcolor = 0x209C00;  

    24.     private TimerTask task;  

    25.     private static int next;  

    26.     Game(){  

    27.         try {  

    28.             source = Image.createImage("/action.png");  

    29.         } catch (IOException e) {  

    30.                

    31.             e.printStackTrace();  

    32.         }  

    33.         //切割圖片  

    34.         for(int i=0; i<5; i++){  

    35.             action[i] = Image.createImage(source, 96*i, 096600);  

    36.         }  

    37.           

    38.         for(int j=5; j<10; j++){  

    39.             action[j] = Image.createImage(source, 96*(j-5), 10296800);  

    40.         }  

    41.           

    42.         //這個是用來執行動作的計時器。原理是要求經過0.2毫秒動一次  

    43.         task = TimerTaskManager.getInstace().add(this150);   

    44.     }  

    45.     protected void paint(Graphics g) {  

    46.         fillScreen(g);  

    47.          paintAction(g);  

    48.   

    49.     }  

    50.     private void fillScreen(Graphics g) {  

    51.         g.setColor(0xFFFFFF);  

    52.         g.fillRect(00this.getWidth(), this.getHeight());  

    53.           

    54.     }  

    55.     private void paintAction(Graphics g) {  

    56.         if(next == 10)  

    57.             next =0;  

    58.         //如果繪制的圖片是出雷電的時候,讓人物停留在那里。這樣的效果會好點  

    59.         if(next>=5){  

    60.             g.drawImage(action[4], 10*40, Graphics.LEFT|Graphics.TOP);  

    61.         }  

    62.         g.drawImage(action[next], 10*next, 0, Graphics.LEFT|Graphics.TOP);  

    63.           

    64.            

    65.         next++;  

    66.           

    67.     }  

    68.     public void run() {  

    69.         repaint();  

    70.           

    71.     }  

    72.       

    73.       

    74.   

    75. }  


    posted on 2006-12-30 09:24 路是爬出來的 閱讀(159) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 91国内免费在线视频| 黄色a三级三级三级免费看| 亚洲免费无码在线| 国产av无码专区亚洲国产精品| 国产亚洲视频在线播放大全| 国产jizzjizz免费看jizz| 亚洲av日韩综合一区久热| 亚洲AV成人精品日韩一区18p| 午夜不卡AV免费| 亚洲无线观看国产精品| 色噜噜AV亚洲色一区二区| jizz免费在线观看| 亚洲爆乳无码一区二区三区| 四虎国产精品永久免费网址| 亚洲日本乱码一区二区在线二产线| 99久久久精品免费观看国产 | 亚洲色大网站WWW永久网站| 久久久久国产精品免费免费搜索| 亚洲欧美一区二区三区日产| 免费国产不卡午夜福在线| www免费黄色网| 在线观看亚洲一区二区| 成人无遮挡裸免费视频在线观看 | 亚洲综合精品伊人久久| 又黄又爽的视频免费看| 最近国语视频在线观看免费播放| 亚洲综合在线成人一区| 在线观看国产情趣免费视频 | 亚洲av纯肉无码精品动漫| 亚洲日韩涩涩成人午夜私人影院| 今天免费中文字幕视频| 亚洲va久久久久| 亚洲女同成人AⅤ人片在线观看| 无码国产精品一区二区免费3p| ASS亚洲熟妇毛茸茸PICS| 亚洲VA综合VA国产产VA中| 1000部无遮挡拍拍拍免费视频观看| 亚洲中文字幕无码一区 | 久久免费的精品国产V∧| 亚洲欧美成人一区二区三区| 国产亚洲高清不卡在线观看|