ユーザ用ツール

サイト用ツール


tips_state

複数の状態を区別して動く

(2016/3/1)

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

 // 状態遷移の実現
 終了状態=「」。
 状態=終了状態。
 時計=タイマー!作る「状態!実行」実行。
 
 // 状態遷移のプログラム
 かめた=タートル!作る。
 前進状態=「
  かめた!5 0 移動する。
  「(かめた!横の位置?)>50」!なら「状態=上昇状態」実行。
 」。
 上昇状態=「
  かめた!0 5 移動する。
  「(かめた!縦の位置?)>50」!なら「状態=後退状態」実行。
 」。
 後退状態=「
  かめた!-5 0 移動する。
  「(かめた!横の位置?)<0」!なら「状態=下降状態」実行。
 」。
 下降状態=「
  かめた!0 -5 移動する。
  「(かめた!縦の位置?)<0」!なら「状態=前進状態」実行。
 」。
 状態=前進状態。
tips_state.txt · 最終更新: 2018/01/07 11:41 by kanemune