複数の状態で動く

複数の状態で動く

「今は前進している状態」「今は上昇している状態」といった状態を変数で管理すると複雑になってしまいます。このようなときは状態をメソッドで定義しておき、タイマーで実行される内容を差し替えて使うと便利です。状態の実行を終了するときは、終了状態にするか時計を中断します。

// 状態遷移の実現
終了状態=「」。
状態=終了状態。
時計=タイマー!作る「状態!実行」実行。

// 状態遷移のプログラム
かめた=タートル!作る。
前進状態=「
 かめた!5 0 移動する。
 「(かめた!横の位置?)>50」!なら「状態=上昇状態」実行。
」。
上昇状態=「
 かめた!0 5 移動する。
 「(かめた!縦の位置?)>50」!なら「状態=後退状態」実行。
」。
後退状態=「
 かめた!-5 0 移動する。
 「(かめた!横の位置?)<0」!なら「状態=下降状態」実行。
」。
下降状態=「
 かめた!0 -5 移動する。
 「(かめた!縦の位置?)<0」!なら「状態=前進状態」実行。
」。
状態=前進状態。

Theme designed by Dining tables
Coder Mothers Day | EZwpthemes |modified by QHM Temps

powered by Quick Homepage Maker 5.0
based on PukiWiki 1.4.7 License is GPL. QHM

最新の更新 RSS  Valid XHTML 1.0 Transitional