しつこくLuaを触ってみる
Luaのスレッド(coroutine)を使ってオブジェクトを制御してみる。このcoroutine、まさにゲームにうってつけの超便利な機能。coroutineがいったいどんなもので、どんな風に便利なのかは下記URLを参考に。
- http://www.radiumsoftware.com/0303.html#030329
- http://makimo.to/2ch/pc2_gamedev/1067/1067458051.html#283
要するに協調型のスレッドなんだけど、複雑になりがちな状態偏移を繰り返すオブジェクトの処理をすっきりと記述することが出来る。
- 気になること
スレッドやテーブルの作成はメモリの再確保が行われたり、結構重い処理のよう。とくにテーブルはメンバを追加したりサイズが増えたりするたびにメモリの再確保を行うため、なるべくパフォーマンスを要求される所には使わないほうがよさそう。
スレッドは最初にどかっと作り貯めておいて、要求に応じてプールから割り当てる形にしたほうが良さそうだ。