GM:ステートマシン備忘録
どうもMaster.typeXです。
今回は趣向を変えて「ステートマシン」
という概念についてちょっと
忘れないように書いてみる。
ステートマシンとはなんぞや?
知らんがな。
それでいいのか第一声。
とりあえず今回の例として
この動画を見て欲しい。
プレイヤーキャラがいて、黄色いのがはしご、
緑のちっちゃいのがはしごの頂点である。
左右移動とはしごは
別々の処理を作らねばならぬのだが・・・
ステップイベント内:はしご開始処理
ステップイベント内:はしご中の移動処理
同じステップイベント内に書こうとすると
なかなか大変なことになる。
下手するとバグの温床にもなりかねない。
そこでステートマシンの出番である。
先程の2つの画像は同じステップイベント内で
書かれていたのだが、コレをクリエイトイベントに
書いておいて、実行させる方法がある。
//例 Createイベント内
statefree = function(){
//左右移動やはしご開始処理など
}
stateladder = function(){
//はしごの昇降などの処理
}
//初期ステートの設定
//ステップイベント内で state() と記述すれば
//stateに代入した処理を行ってくれる。
state = statefree;
こんな感じである。
実例がこちらなんだぜ。
クリエイトイベント内:左右移動などができる処理
クリエイトイベント内:はしご専門の処理
自分でもよくわかっていないが
ステート名=function()で
一部の動作を切り分けておけば
バグの可能性も減るし、仮に起きてもどっちのイベントか
判別しやすくなる
・・・と、思うんだよな。
とにかく。
プレイヤーの動作はこうやって
切り分けて作ると管理も楽なので
GM使いは試してみてはいかがだろうか。
まあ、ぶっちゃけた話
下記動画を見たほうがわかりやすいんですけどね!!!
英語だけど。
https://www.youtube.com/watch?v=yfFzz9mZkU4&t=121s
ということで今回はこの辺で!
また次回!