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

このWIKIを編集するにはパスワード入力が必要です

認証パスワード