Skip to main content

Posts

Showing posts from 2015

[CoronaSDK] TweenTrain, the transition helper class

上週新上架了一個 CoronaSDK transition API helper plugin,主要的目的是為了可以用 string 設定控制所有的動作巨集,方便動作資料預設。

一般來說,如果要使用 transition 達成物件跳躍後往右邊移動,一般語法如下:
transition.to( target, {y = target.y-100, transition=easing.outSine, time = 400} )
transition.to( target, {y = target.y+100, transition=easing.inSine, time = 300, delay=400} )
transition.to( target, {x = target.x+300, transition=easing.inSine, time = 600, delay=700} )

如果改用 tweentrain 就可以寫成:

tweentrain.set( target,
{ "transition:to", {y="-100", transition="outSine", time=400} },
{ "transition:to", {y="100", transition="inSine", time=300} },
{ "transition:to", {x="300", transition="inSine", time=600} }
)
tweentrain.start( target )

是不是就簡單很多了呢?

View the Document on Github

Get it from Corona Plugin Store now. =D

[CoronaSDK] 多國語系支援

CoronaSDK 中取得 Android 與 iOS 語系方法並不相同,繁體與簡體取得名稱也不一樣,為了簡化兩系統的繁體與簡體語系支持,所以特別打包了一支函式來控制多國語設定,之前一直忘了分享出來也剛好很久沒更新 Blog 了...=D

使用方法很簡單:
將語系字串放在 locale/ 並以 strings.i18n(預設)與 strings_[ISO_639-1].i18n
繁體共用命名:zh_hant
簡體共用命名:zh_hans

語系字串資料採用 JSON 格式:
locale/strings.i18n
{
"hello" : "Hello",
"welcome" : "Welcome"
}

locale/strings_zh_hant.i18n
{
"welcome" : "歡迎"
}

執行:Global function
L( str: String ) -> String
Usage:

local i18n = require( "i18n" )
-- set device language -> locale/strings_[device setting].i18n
i18n.setLocale()
-- 假使目前語系為 i18n.language = "zh_hant"
print( L("hello"), L("welcome"), L("no data"))
-- Hello 歡迎 no data

-- 動態更改支援語系到預設值
i18n.setLocale("")
print( L("hello"), L("welcome"), L("no data"))
-- Hello Welcome no data


備註:僅測試於 Android 與 iOS 系統,如其他裝置需要做修正的話,請自行 DIY。

[Lua] 簡易模擬 C# Delegate Type 行為

因為工作需求,準備開始學習 C#,這兩天研究一些公開的 Unity 原始碼發現 C# 有個 Delegate Type 很有意思,它可以利用 + 與 - 將需要搭配執行的 function 指派到委任者然後一起執行。如:

//C#, d1 and d2 are functions
allMethodsDelegate += d1;
allMethodsDelegate += d2;
allMethodsDelegate(); // d1(), d2()
allMethodsDelegate -= d2;
allMethodsDelegate(); // d1()

參考資料:使用委派 (C# 程式設計手冊)

Edit: 03, 08, 2015, 感謝 fb@shanyungyang 的提醒可以使用 Lua 的 metamethod 實作,為了達到屬性能往下傳,本來是打算採用 * / 但是又怕太混亂,最後就是由另外一個 meta2 來達到效果囉! ^^

[JSFL] Export MovieClip For TexturePacker

一般可分析 swf 的軟體都是針對 main timeline 做定位,所以直接從 Adobe Flash 的 Library 選單輸出的 MovieClip .swf 對其來說都是不合法的格式,如果一個 app 使用的動畫量並不多的話,將 MovieClip 轉拉到新文件重新輸出到不是太麻煩的一件事,但是...為了秉持懶人精神,當然是用 Adobe JavaScript API來製作 ,傑克真的太神奇了,想要的格式都可以透過這個修改輸出...說實話,現在一堆手持裝置用 App 的編輯軟體,再如何也沒有 Flash 好用啊! Flash 大回春!!!!!

首先完成的是 Export MovieClip For TexturePacker:
可直接將 MovieClip 輸出成 TexturePacker 可以分析的 swf 格式,其他的可分析 swf 的 spritesheet 包裝軟體也可以使用。共有兩種輸出模式,你可以直接將主場景影格1中所有的 MovieClip 實體輸出,或者選擇你要輸出的 MovieClip 實體即可。