程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2ME平台手機游戲移植體會(二)

J2ME平台手機游戲移植體會(二)

編輯:J2ME

----------Doja平台手機游戲移植標准J2ME平台方法

Doja平台是日本NttDocomo公司的產品。可以通過訪問www.nttdocomo.com來獲得更多的資料。這裡要介紹的是Doja平台與標准平台的差異。一個標准的Doja手機游戲工程包括幾個默認的文件夾。

/bin
/res
/sp
/src

bin文件夾存放的跟標准WTK工程文件中的文件夾是一樣的,都是編譯好的.jar文件和一個.jam文件。.jam文件類似jad文件。可以用文本文件打開編輯。裡面有一些必要的項目。包括jar文件的相對路徑.

res文件夾應該是存放資源文件的文件夾.(沒具體研究)

sp 文件夾存放著程序中要用的.scr資源文件。這裡簡單的介紹一下Scratchpad的概念。
Scratchpad類似一塊內存。但是具體是什麼我上網查了一些資料也沒確切的說明,也有說像手機中的硬盤的。但是每個工程中可以包含多個.scr文件存放在sp文件夾中.如果你下載了一個開發i-mode for Doja 的開發工具。裡面就有關於Scratchpad編輯的設置。這個Scratchpad 在打包的jar文件中並不存在。好象是從網上下載下來用的。

scr文件夾存放著.Java的原文件.

給一個代碼片段:

DataInputStream in = Connector.openDataInputStream("scratchpad:///0;pos="+0+",length=12"); 

所以如果想修改到標准的J2ME平台就要把.scr這個文件搞明白。它這個資源文件基本上都包括所有資源。聲音,圖片,數據 等等。一般需要用十六進制的編輯軟件將一些有用處的數據提出來。 根據在程序中原來的讀寫操作進行判斷。比如"scratchpad:///0;pos="+256+",length=12"  意思在.scr作為流的數據中偏移256個byte。 長度為12個byte的數據塊作為DataInputStream流。可以用下面代碼段替換:

DataInputStream din = new DataInputStream(getClass().forName("Test").getResourceAsStream("/Test0.scr"));
din.skipBytes(256);

我無法解釋的更詳細。因為我做這個東西比較少。只能說說大概。

把資源文件搞定後。開始分析程序。 Doja平台的程序跟普通J2ME平台程序的結構基本一樣。只是所用的方法都是Doja自己的方法。需要自己寫一些方法替換掉。 最常接觸的就是畫圖方法。drawImage();  這個方法在Doja的API說明中有很多個重載的方法。可以接收很多不同的參數。因為Doja有自己的方法,可以從一幅大圖中單獨畫一幅小圖 。只要給定坐標和尺寸就可以。所以Doja的畫圖都是從一副大圖中畫一幅小圖。Doja的接收按鍵的方法也不同。它有點類似MIDP2.0的方法。對按鍵的狀態是進行判斷的。所以很方便做按下和釋放的事件處理。 在程序中都是才用位操作實現的。

我覺得Doja游戲移植的難點不是API的不同。而是內存的處理。因為日本的手機性能大部分都比國內的手機的性能好很多。包括網絡連接。所以處理內存是個難題。

還有一點注意的就是在進行圖象翻轉,縮放,與變色的方法上。如果你要從寫這些方法。要考慮處理速度的問題。就算你寫的方法是可以實現原功能的,也會在速度差異上出現意想不到的效果。

對於程序的處理,我沒有介紹很多。因為程序千變萬化。如果你遇到什麼難題或者需要實現什麼方法。可以聯系我。或許我這裡有寫好的。呵呵^_^

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