我們要?jiǎng)?chuàng)建兩個(gè)簡(jiǎn)單的3D MIDlet程序,其中一例使用JSR 184 API而另一個(gè)則使用Micro3D V3 API。它們演示了如何使用這兩組不同的API創(chuàng)建相同的3D動(dòng)畫。因?yàn)槭褂玫氖橇⒓茨J降木壒剩恍枰褂?D資源文件。
l 3D_Demo1使用的是JSR 184 API。它包含兩個(gè)文件"MIDletMain.java"和"MyCanvas.java"。res子目錄中的cubeface.png文件和backdrop.png分別用于材質(zhì)貼圖和背景圖像。
l 3D_Demo2使用的是Micro3D v3 API。它同樣包含兩個(gè)文件"SampleApp.java" and "SampleCanvas.java",并且res子目錄中的cubeface.bmp文件和backdrop.png分別用于材質(zhì)貼圖和背景圖像。注重,Micro3D v3 API要求使用的是8-bit BMP格式的貼圖文件。
"MIDletMain.java"和"SampleApp.java"中的代碼是完全一致的,使用不同的文件名只是為了更好區(qū)分它們。
我們初始化了MIDlet并開啟了一個(gè)用于實(shí)現(xiàn)場(chǎng)景動(dòng)畫的timer線程。在初始過(guò)程后,創(chuàng)建了一個(gè)自定義的Canvas。Canvas的paint方法調(diào)用了3D API產(chǎn)生了一個(gè)立方體,并將"cubeface.png"或是"cubeface.bmp"作為紋理圖繪制在它的表面。這個(gè)方法同樣實(shí)現(xiàn)了矩陣變換用于改變立方體的視角。
timer線程周期性的調(diào)用Canvas的repaint()方法,來(lái)不斷的改變立方體的角度。因此我們看到了一個(gè)不斷旋轉(zhuǎn)的效果。
通過(guò)這個(gè)簡(jiǎn)單范例程序我們看到,只要精心的設(shè)計(jì)MIDlet,完全可以在不改動(dòng)MIDlet核心邏輯的前提下實(shí)現(xiàn)JSR184 API和Micro3D v3 API的互換。
下載范例程序和源代碼:
http://developer.sonyeriCSSon.com/getDocument.do?docId=70525
原文地址:
http://developer.sonyericsson.com/site/global/tipstrickscode/mobilejava3d/p_rotating+cube.jsp
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注