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

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

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

    路是爬出來的

    游戲中動(dòng)畫的基礎(chǔ)

            這篇文章是純粹的個(gè)人看法。

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

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

           說白了。動(dòng)畫的效果其實(shí)就是一幅幅圖片按照指定的時(shí)間一幅幅的換圖片而已。

           好了。看代碼吧。

    java 代碼


     


    1.    

    2. package org.wuhua.game.timer;  

    3.   

    4. import java.util.Timer;  

    5. import java.util.TimerTask;  

    6.   

    7. /** 

    8.  *  對(duì)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.  * 動(dòng)畫的主類 

    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.         //這個(gè)是用來執(zhí)行動(dòng)作的計(jì)時(shí)器。原理是要求經(jīng)過0.2毫秒動(dòng)一次  

    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.         //如果繪制的圖片是出雷電的時(shí)候,讓人物停留在那里。這樣的效果會(huì)好點(diǎn)  

    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) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产精品免费观看| a级毛片在线免费| 亚洲国产成人久久精品app| 亚洲欧洲国产综合AV无码久久| 亚洲精品在线免费观看视频| 亚洲Av无码国产情品久久| 亚洲精品在线播放视频| 一级大黄美女免费播放| 亚洲Av无码乱码在线播放| 日韩在线观看视频免费| 中文字幕亚洲一区二区三区| a毛片在线看片免费| 亚洲综合一区二区国产精品| 中文字幕无码播放免费| 一本色道久久88亚洲精品综合 | 亚欧日韩毛片在线看免费网站| 国产l精品国产亚洲区在线观看| 久久精品国产亚洲av品善| 97人妻无码一区二区精品免费| 亚洲人成网国产最新在线| 一级毛片免费观看不卡的| 亚洲校园春色小说| 嫩草影院免费观看| 亚洲视频中文字幕在线| 国产成人精品免费视频动漫 | 久久久久久亚洲精品不卡| 免费在线黄色电影| 亚洲一卡二卡三卡四卡无卡麻豆 | 久操视频免费观看| 亚洲视频在线免费| 羞羞网站在线免费观看| 美女被免费视频网站a国产| 久久亚洲AV无码精品色午夜麻豆 | 亚洲爆乳无码专区| 亚洲欧洲免费无码| 久久亚洲熟女cc98cm| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产精品国产免费无码专区不卡 | 在线看片无码永久免费aⅴ| 亚洲av无码片区一区二区三区| 国产精品另类激情久久久免费|