程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 給你的2D游戲添加3D效果

給你的2D游戲添加3D效果

編輯:J2ME
兩種方法給你的2D游戲添加3D效果。你可以使用內置的3D功能(例如:K700)或者你可以使用標准的2D API來模擬實現3D效果。

此外,使用手機內置3D功能並不需要把程序裡的所有圖形都實現3D效果。通常它是創建更多的場景,在普通的2D游戲中加入簡單的3D效果。這樣你可以不改變程序的核心代碼就能在程序中實現簡單的3D效果。

3D跳轉頁面

       首先,或許很簡單,這個效果是用3D動畫取代一個存在的2D跳轉頁面。隨著程序的增大,更多的數據需要花時間去裝載,一個漂亮的跳轉頁面變得越來越重要。例子程序是一個3D跳轉頁面並提供代碼下載。這個程序的主結構與”顯示一個Java跳轉頁面”是相同的,不過這個例子是使用的Mascot Capsule v3 API在K700上顯示一個簡單的3D動畫。你也可以使用JSR-184 API代替Mascot Capsule v3 API,在K700上仍然支持(索尼愛立信SDK對JSR-184支持並不完全,不過你可以在SUN網站上下載最新的JSR-184 API)。當靜態的圖片改為動態的動畫時,它必須保證動畫線程能獲得CPU時間在初始化期間。所以我們定期的調用初始化線程的Thread.speel(20)方法。

       在動畫線程,動畫是一幀一幀的向前變化,使用Timer的TimerTask來控制按照固定率重復執行。

myTimer.scheduleAtFixedRate(new TimerTask(){ 

public void run() {
                          // Stop the Splash when
             // initialization has finished    
             if(isInitialized){
                 myTimer.cancel();
              }
                            
              splashCanvas.repaint();

              nowFrame += 65536*3;
              if (nowFrame>=maxFrame) {
                 if (maxFrame==0){
                            nowFrame = 0;
                   }else{
                            nowFrame %= maxFrame;
                   }
                 }
       }
   }, 0L, 100L);

3D菜單

       這裡仍然有許多我們能做的而不涉及實際游戲本身。游戲的菜單可以增加3D效果。按鈕、選擇框和其他標准的2D UI都能很容易的替換為3D等價物,你也可以創建完整的3D界面,配合不使用2D效果的情形。

       這些要看你目前是什麼水平,這些效果可能不需要調用3D引擎來創建。作為簡單的效果,你可以創建2D圖畫來模擬簡單的3D效果

游戲裡的3D效果

       當游戲是移動的,我們就有機會增強這些圖形,使用2D技術來模擬3D效果。

       我們可以以2D效果開始,例如,使用LayerManager實現雲或煙霧在其他層前面漂移效果,從而模擬不同的遠景並造成感官深度。同樣的技術適用於背景是標准的水平卷軸游戲,通過把背景創建為兩層,並使前面一層的移動快於後面一層的移動。你可以下載這個程序的代碼。

       由於真正的3D的支持,在游戲中,你可讓3D成為主動的部分或僅僅使用它在一些被動的方式。主動使用的意思是這樣的,例如:一個太空飛船或汽車是受用戶約束的,它們的顯示受到用戶的輸入和移動所影響。而被動使用是指當你使用一個3D效果時,不依賴於用戶的交互信息。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved