Master.typeX 2023/08/04 11:22

GM:ステートマシン備忘録

どうもMaster.typeXです。

今回は趣向を変えて「ステートマシン」
という概念についてちょっと
忘れないように書いてみる。

ステートマシンとはなんぞや?

知らんがな。

それでいいのか第一声。
とりあえず今回の例として
この動画を見て欲しい。

プレイヤーキャラがいて、黄色いのがはしご、
緑のちっちゃいのがはしごの頂点である。

左右移動とはしごは
別々の処理を作らねばならぬのだが・・・


ステップイベント内:はしご開始処理


ステップイベント内:はしご中の移動処理

同じステップイベント内に書こうとすると
なかなか大変なことになる。
下手するとバグの温床にもなりかねない。

そこでステートマシンの出番である。

先程の2つの画像は同じステップイベント内で
書かれていたのだが、コレをクリエイトイベントに
書いておいて、実行させる方法がある。

//例 Createイベント内
statefree = function(){

//左右移動やはしご開始処理など

}

stateladder = function(){

//はしごの昇降などの処理

}

//初期ステートの設定
//ステップイベント内で state() と記述すれば
//stateに代入した処理を行ってくれる。
state = statefree;

こんな感じである。
実例がこちらなんだぜ。


クリエイトイベント内:左右移動などができる処理


クリエイトイベント内:はしご専門の処理

自分でもよくわかっていないが
ステート名=function()で
一部の動作を切り分けておけば
バグの可能性も減るし、仮に起きてもどっちのイベントか
判別しやすくなる

・・・と、思うんだよな。

とにかく。
プレイヤーの動作はこうやって
切り分けて作ると管理も楽なので
GM使いは試してみてはいかがだろうか。

まあ、ぶっちゃけた話
下記動画を見たほうがわかりやすいんですけどね!!!
英語だけど。

https://www.youtube.com/watch?v=yfFzz9mZkU4&t=121s

ということで今回はこの辺で!
また次回!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索