穿越紅塵不擾關,迴旋天地去複還

來源:互聯網
上載者:User


實在不好意思,前一段我家老爺子住院做了個頸椎手術,最近他老人家身體好了(剛剛和母上逛公園去了),我也就閑下來了。很長時間沒上部落格,也沒有讀任何郵件,非常對不住大家,這兩天我會補回來。

——————————————————————————————————————————————————

不過,這段時間小弟並非什麼都沒幹,話說LGame的0.3.3正式版,已經到了整理下代碼就能發的程度了,順便傳兩張圖。

我對Java版也做了一些修正,比如小弟最近將ADT升級到2.0後,發現以前的樣本工程全部無法【直接】使用了,經仔細觀察,發現是Eclipse工程配置和舊版有了變化而導致的;因此我在Beta版中又額外修正了部分樣本,以防使用者無法使用舊版LGame樣本時,而誤以為是架構運行Bug(-_-|||)。其實最簡單的修改方式,無非是產生新工程,然後copy源碼過來,這樣原來的遺留項目也就正常了(一開始就直接用ADT1.6以上版本的使用者不必操心此問題)。

PS:7月12上傳到SVN中的。

另外,我為LGame中添加了SpriteBatch,SpriteRegion,LTextureRegion這三個基本同Libgdx近似名稱類功能等價的新類(但座標系不同,具體功能也有擴充和刪減,還加入了SpriteBatchScreen這個直接調用SpriteBatch的類),方便移植些東西過來。並增加了一個LGame和Libgdx的混用包,以求更直接的“照搬”代碼。需要注意的是,此混用包是以LGame底層API為基礎的Libgdx功能再現,所以並不是標準的Libgdx類庫,功能有所刪減,同時也不需要Libgdx的so庫支援(SVN的Beta版中有使用的例子)。另外,我將Box2D那部分使用Libgdx的代碼也放到裡面去了,也就是說Physics部分現在需要同時載入這個包才能用。

除了標準的setScreen方法外,最近我又新添加了replaceScreen這一切換方式,用以進行漸進式的表單變換(通過設定MoveMethod模式,可以進行16種樣式的表單移動交替,就是常見的一個表單逐步進入畫面,一個表單逐步移出畫面那種橋段……)。PS:該方式本身就屬於特效,所以使用replaceScreen切換畫面時,在onTransition設定的特效會被強制無效化。

對Action事件部分也有較大修改,觸發對象換成了所有繼承自Action介面的類,而不限於Actor對象才能使用自動事件。不過原先使用了Actor做動作的話也無需介懷,即便您使用到了Actor特有的函數(startAnimation,stopAnimation之類的),直接強轉Action為Actor即可照用不誤。

並且刪除了一些使用量較少的輔助類,為新增加的功能騰出空間。

經過長時間“調教”,話說0.3.3版中明顯的Bug應該已經找不到了,剩下的就是同步到C#、C/C++以及HTML5(JavaScript)這三種語言的版本中去。事實上,因為小弟開發LGame的時間段太散(經常寫幾天又中斷幾天),所以很多地方測試不夠,導致舊版中有些很明顯的Bug存在(比較明顯的是C#版,7月12號更新的這版Beta也就剛剛能使用|||)。所以我對0.3.3版的正式發布變得非常小心,絕不留後患(發布0.3.3後我就準備組團了,畢竟維護4種語言個人很難做到,突顯得打基礎更重要~)

之所以沒有立即發布0.3.3,是因為小弟整合四種語言找平衡中,順路補全測試案例,否則有的模組大家不知道該怎麼用-_-。比如把Java版原來的 org.loon.framework.android.game.xxxx 包命名方式直接縮短為 loon.xxxx。

具體原因是為了兼顧C/C++版,因為如果和Java版package基本等價,在C/C++中使用命名空間時,就要變成如下命名樣式:

namespace org
{
    namespace loon
    {
        namespace framework
        {
            namespace javase
            {
                namespace game
                {
                    namespace core
                    {

這長度,實在太碉堡了|||。而且調用時using org::loon::framework::game::xxxx一大串也非常難記。所以為了平衡各版API通用性,小弟只能犧牲點Java習慣,削足適履(雖然包名太短,在Eclipse裡展開效果不好看,但在NetBeans中看著還成-_-)

PS:如果您暫時還需要使用舊版0.3.3-Beta,小弟建議一定要下載SVN中0712這個更新,否則以後的0.3.3(無論是Beta還是正式發布)都將不是目前這種包名了。當然,也沒有多大的變化,僅僅是包名縮短,加之極少量LGame中Java類名與C/C++及C#版中namespace名或API名有衝突,進行了改名而已。等正式頒發布時小弟會加以詳細說明(縮短全部Java包名後,jar居然額外省出了十幾KB……)。

還有C++版和Java版的匹配問題不用擔心,小弟把8成的Java常用API都以C++的方式實現了(具體地說,是java.io,java.nio,java.lang,java.util這四個和本地環境關係不大的部分被我移植了),所以基礎資料型別 (Elementary Data Type),集合,線程之類的寫法都可以直接套用,有簡單的GC實現(引用計數器),可以在設定好的前提下支援反射(手動註冊反射類)。這都是為了讓Java項目能直接匯出為C++項目所做的基礎工作。

0.3.3正式版,過兩天加一個初步的遷移工具(主要功能是把Java版項目轉換成C#、C++版項目,所以需要API高度匹配,否則不好做。為此C++版甚至仿寫了8成的Java類庫),再寫幾個新樣本就放出來了。大體上講依舊Java文法特性為主,兼顧C/C++與C#使用者習慣,在和前三種文法沒有大衝突的前提下,適當考慮JavaScript使用者習慣。

___________

最近劇荒,補女皇之刃,附帶追鬼畜勇者,還我H之魂(新出的7月裡番已經看完,只能看看這些了)——以及偏正常,略百合的貧乏神來了(另,距離第十三號倉庫開播還有九天,總算有個能看的了)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.