較早前LGame示例下載地址:http://loon-simple.googlecode.com/files/LGame-Simple-0.2.5.7z
最新版LGame(0.2.6)下載地址:http://loon-simple.googlecode.com/files/LGame-0.2.6.rar
1、如何啟動LGame
目前的LGame提供有J2SE以及Android兩個開發版本,兩版的主要類及函數雖然相同,但由于Android版對應于手機環境,而J2SE版對應于PC環境,所以依舊有少許的差別。
J2SE版:
在J2SE環境下,只需要在Main函數中構造如下內容即可。
Android版:
而在Android版中,我們則需要分兩步走,一是需要配置相關的AndroidManifest.xml 文檔。
如下所示:
而調用的方法如下:
這時LGame框架就會根據我們所實現的不同Screen,來展示我們的游戲了(很簡單吧)。
2、如何構建Screen類
Screen是一個抽象類,也是LGame框架所提供的游戲界面展示器,其中封裝了基本的圖形接口與相關的操作設備交互函數,在LGame框架中,可以直接作為游戲界面進行展示的Screen共有三種。
一、Screen
即最基本的Screen,包含了最基本的Screen函數,默認自動刷新游戲畫面(根據FPS所設定的速度),不提供repaint以及getLGraphics方法,是提供LGame框架調用的最基本Screen形態。
J2SE版使用方式如下:
另外,在 Screen 中還有一個重要的 alter 函數,我們可以通過重載 alter 函數實現最簡單的定時操作,譬如 :
// 設定計時器,每隔 1 秒允許執行一次
LTimer timer = new LTimer(LSystem. SECOND );
// 重載 alter 函數
public void alter(LTimerContext context){
if ( timer .action(context.getTimeSinceLastUpdate())){
}
}
Android版使用方式如下:
Android 版 Screen API 與使用方法基本等價于 J2SE 版,但由于手機與 PC 間功能有所差別,所以具體的 API 名及函數有所不同。
關于 alter 函數部分完全一致。
二、ThreadScreen
J2SE版:
ThreadScreen 是一個實現了 Runnable 接口的 Screen ,它采用 double buffer 方式將繪圖與業務線程分離, gameLoop 函數中即是一個獨立的線程。
與標準 Screen 的其它區別在于, ThreadScreen 可以通過 getLGraphics 或 getDraw ( Draw 類為 LGraphics 的簡化封裝)函數直接獲得對 LGraphics 的操作權,并非一定要通過 drawScreen 函數繪圖。
Android版:
J2SE 與 Android 版的差別僅僅在于鼠標、鍵盤等設備函數上,其它細節相同。
三、CanvasScreen
CanvasScreen 是 0.2.6 版中最新提供的 Screen 實現,模擬 J2ME 中 Canvas 而成(也混合了 GameCanvas 的 API ),相關函數在 J2SE 及 Android 版中完全一致。
與標準 Screen 的其它區別在于, CanvasScreen 可以通過 getLGraphics 函數直接獲得對 LGraphics 的操作權,并非一定要通過 paint 函數繪圖。另外,由于 CanvasScreen 的 Paint 函數并不直接關聯父類的 draw 函數,所以 LGame 中提供的精靈或組件無法直接通過 add 函數加載顯示,而是只能在 paint 中手動調用相應組件的繪圖器進行繪制(關于這點,用慣 J2ME 的朋友應該沒什么不習慣的。另外 LGame 提供有配套的 j2me 精靈類包可供使用,為 1 : 1 仿 J2ME 原有 API 實現)。
以下是一個CanvasScreen的使用示例:
//初始化時的精靈動畫
//移動時的精靈動畫
//背景圖片
請注意,為了演示圖像擴大機制,示例所用的精靈以及游戲背景圖像都非常之小,而實際開發中并非一定要使用圖像擴充,更不是只能使用此比例的圖像。
下面我制作一個 Sword.java ,這是一個自定義的精靈類,用以顯示上圖所示的“骷髏劍士”。(在不重新實現 ISprite 的基礎上,我們也可以直接使用現成的 Sprite 類來完成此例。但是,關于動作細節部分就只能在精類外部設定或者重載 Sprite 的 update 函數來實現(和實現 ISprite 沒什么區別了 ||| ))。
設定一個 CanvasScreenExample.java ,用以繼承 CanvasScreen 。
此時,我們只需要根據需要實例化相關的Screen(也就是setScreen),就會得到如下效果:
實際運行效果如下( Android 版效果與此相同, PC 版中窗體實際大小被設定為 480x320 )
PS: 在 CanvasScreen 中也允許完全照搬 J2ME 中 Canvas(GameCanvas) 與相關精靈(內置有 API 1:1 的精靈類相關實現)的構建方式,可以將任何 J2ME 游戲代碼平移其中。簡單的講,您在只掌握 J2ME 技術的情況下也可以使用 LGame ,而無需單獨學習任何 LGame 框架本身的構建方式。
較早前LGame示例(僅PC版)下載地址:http://loon-simple.googlecode.com/files/LGame-Simple-0.2.5.7z
最新版LGame(0.2.6)下載地址:http://loon-simple.googlecode.com/files/LGame-0.2.6.rar
浙公網安備 33010602011771號