Initializer
イニシャライザー
『suica32』 s/game_common.lua
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ INITIALIZER_LIST = {} -- 各種初期化ルーチンを一斉に呼び出す function initializer() for index,func in pairs(INITIALIZER_LIST) do func(); end end ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
やっていることは、関数の入った配列を回して、全部実行してるだけ。
例えば、次のように使う。
『suica32』 s/chr/effect.lua
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ function effect_init() G.efx = {} G.efx.blast = { base = loadGraphic("gfx/efx1.png") }; local i; for i=1,8,1 do G.efx.blast[i] = cutGraphic( G.efx.blast.base, 64*math.mod(i-1,4), 64*math.floor((i-1)/4), 64, 64 ); end setGraphicAnimeSequence(G.efx.blast,3); G.efx.shock = loadGraphic("gfx/shockwave.png"); G.efx.cutin = loadGraphic("gfx/cutin.png"); end table.insert(INITIALIZER_LIST,effect_init); -- boot時初期化を実施 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
イニシャライザーが呼び出されるのは、ローダースレッド(Now Loading...)の中。
『suica32』 s/scene/logo.lua
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ function logo_OnStart() G["logo"] = {}; G["logo"].circle = loadGraphic("gfx/logo_circle.png"); clearLayerSettings(); cls(); stopThread(); startLoaderThread("initializer"); PXF_TEXT = "Loading..."; actor_text = createActor(G.font[0],320,400,1,"pxf"); startThread("logo_Thread"); end ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
- 最終更新:2013-09-16 05:31:09