鳥小屋.txt

主に自作ゲームをつくったりしているよ。制作に関することやそうじゃないことのごった煮ブログ

Luaのコルーチンで実験

これからはなるべく日記書くようにしようと思いました。自分の覚え書きもなりますし。
前回に引き続きLuaのこと。

Luaにはコルーチンなるものがあります。ゲーム系だとマイクロスレッドって呼ぶそうです。これは途中で中断してあとで再開できる関数みたいなものらしいです。
これを使うとどういうメリットがあるのかというと、

// 従来の場合
var フレーム数=0;
function update() {
	if ( 0〜14フレーム目の時 ){
		右に移動
	}
	if ( 15フレーム目の時 ){
		攻撃発生
	}
	if ( 30フレーム以降 ){
		左に移動
	}
	フレーム数 = フレーム数 + 1
}

こんな感じだったのが

// コルーチン
function update() {
	for ( 15回繰り返し ){
		右に移動
		1フレーム待つ
	}
	攻撃発生
	15フレーム待つ
	loop{
		左に移動
		1フレーム待つ
	}
}

こうやって書けるようになるそうで。お餅でGo!*1作ってる時は上の書き方だったので弾幕が複雑になるとif文大量発生で何がなんだかわからないことに……。それがコルーチンを使うと上から順番に処理を書くことができるのでスクリプトがすごくわかりやすい!(よね?)

そんなコルーチンというものを知ってしまったのでぜひとも採用したいなと思い、スクリプト言語についていろいろ調べていたのです。僕がスクリプト言語を使いたい一番の理由はコルーチンの存在といっても過言ではないのです!
それで今回はその中でもLuaを使ってみようかなということになったのでした。

そんなわけで今はコルーチンを使ってオブジェクトを簡単に操作する書き方を制作中。もうちょっとできたら今こんな感じというのを載せますね。