LGame性能改進,並增加TMX地圖支持(0.2.96版)

下載地址(內含源碼、示例、jar) http://loon-simple.googlecode.com/files/LGame-Android-0.2.96.7z

本次更新主要針對LGame與Android系統組件交互部分進行改進,簡化了流程與代碼,同時調整了LGame運行在不同環境運行時的顯示策略,解決了以往存在的大多數真機差異問題,以儘量滿足不同手機平臺的需求。

 

主要改進如下:

1、新增Touch類,用以替代Android系統默認的MotionEvent類(爲了封裝自適屏座標切換),所有觸屏參數自0.2.96起改爲由此類傳遞。

2、刪除舊有的SpriteTile類,改爲使用標準TMX地圖,相關封裝在org.loon.framework.android.game.action.map.tmx包下。

基本使用方法如下所示,更詳細可見源碼部分或等待0.3版發佈時文檔。

效果圖:

00


3、新增Mode類,用以管理LGame引擎所開發遊戲的顯示模式。

自LGame-0.2.96起,我們可以先用maxScreen函數創建一個480x320之類低分辨率的窗口,而後通過initialization(true,Mode.Fill)(參數中true代表橫屏,false代表豎屏)方式讓它以全屏狀態運行在800x480等較高分辨率的手機之上,調用此函數所產生的窗體完全不需修改其它部分,座標與畫面比例都將自動切換(當然,縮放的代價是畫面與速度的損耗無法避免)。


4、不再強制綁定Admob類庫,原有調用方式改爲手動調用封裝好的AdUtils類。

需要注意的是,此封裝類僅處理AdView相關部分封裝,超出AdView權限的部分不再處理。做如此變更的主要原因在於,最新版的Admob類庫會依賴新增的AdMobActivity類,硬編碼處理隱患太多,故此交還權限給用戶(另一個原因是Admob類庫越來越大,如果不用Admob還帶着它APK在體積上吃虧(- -|||)),使用Admob類庫時請按Admob示例中格式自行配置AndroidManifest.xml文件即可,和普通程序沒有任何區別。(用AdUtils封裝的話配置AndroidManifest.xml就夠了,不用的話請完全照搬Admob示例中代碼)

基本使用方法如下所示:


效果圖:

 

00

5、不再強制用戶必須使用LGameAndroid2DActivity。

 

雖然個人並不主張同時創建多個Activity達到畫面轉換的效果(太耗資源),但假如您一定要使用此方式的話,自0.2.96版起可以在LGame初始化時設置setDestroy(false)函數,這樣就可以讓程序在註銷LGameAndroid2DActivity時不退出遊戲,從而把LGameAndroid2DActivity當作一個非常普通的Activity使用。

6、簡化了LGame與標準Android組件交互時的編碼流程,讓Android窗體添加方式更貼近於LGame自帶組件的添加方式。


自0.2.96版起,當我們想加載一個規定大小的Web界面到LGame的指定位置,可以直接使用以下編碼做到:



效果如下圖所示:

 

00

全屏的話改爲這樣既可。

 



效果如下圖所示:

 

00

另外,由於Android系統自身的特殊線程機制,如果在多線程環境中使用addView添加組件或者進行其它Android系統組件操作(比如LGame的onLoad等函數中調用),需要使用runOnUiThread將其包裝,具體代碼如下所示:


最後,網絡操作必須開啓 <uses-permission android:name="android.permission.INTERNET" />


PS:舉凡編程,都是先有標準的構建方式,再有XML配置方式,所以只要能進行Activity加載,就肯定能正常讀取和加載Android的XML文檔。更何況LGame引擎從本質上說就是一個Android圖形系統的封裝馬甲,絕不可能穿上馬甲就不能以默認方式編程了。如果您看不慣LGame的組件調用方式,大可以該怎麼寫就怎麼寫,操作上完全一致。

7、改良了AndroidDialog調用方式,讓其使用更簡便。


調用選擇框:


00

調用輸入框:

 

00



調用一個Assets文件夾下的HTML文檔:

 

00

其它不一一例舉,總之所有的Dialog都可以正常調用(用Android系統默認的調用方式也一樣)。

下載地址(內含源碼、示例、jar) http://loon-simple.googlecode.com/files/LGame-Android-0.2.96.7z
————————————————

0.3版的SLG模塊有速度問題(在JavaSE版就沒事,鬱悶),所以0.3預計延後一到兩週發佈,先發個0.2.96版勞煩大家幫小弟找找BUG(另外一點,無法發佈0.3的更重要原因在於,小弟最近脖子落枕了(-_-))……

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章