startLoaderThread("initializer")について

DNA.Softwares様のサンプルコードで利用されているstartLoaderThread("initializer")についてちょっと自分用に整理してまとめました。

(注意!)言語はLuaになります

logo.lua内の最初に書いてある

stopThread();
startLoaderThread("initializer");

という所で2行目を読むと

function title_init()
	G.title = {};
	G.title.bg = loadGraphic("gfx/title_bg.png");
end

table.insert(INITIALIZER_LIST,title_init);

等のtable.insertされたものが一斉に読み込むようになります。最初にまとめて読み込むのでシーン変更ごとに画像or音声を読みこまなくて済むので挙動が軽くなるみたいです。

initializer自体は一回読みこめばいいのでlogoシーン時に読み込ませています。ゲーム自体の動きとして


ロゴ(ココでinitializerを動かす)
  ↓
スタート画面
  ↓
ゲーム画面
  ↓
ゲームオーバー画面
  ↓
スタート画面
  ↓
以下ループ


となっているので、ロゴ自体は起動時の1回しか読んでません。2回以上読み込ませると、音声など正常に読み込まれないので気をつけるように。