ユーザ用ツール

サイト用ツール


tips_state

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
tips_state [2018/01/07 20:31] – 作成 kanemunetips_state [2019/10/03 08:35] (現在) klab
行 1: 行 1:
 +# 複数の状態を区別して動く
 +(2016/3/1)
 +
 +「今は前進している状態」「今は上昇している状態」といった状態を変数で管理すると複雑になってしまいます。このようなときは状態をメソッドで定義しておき、タイマーで実行される内容を差し替えて使うと便利です。状態の実行を終了するときは、終了状態にするか時計を中断します。
 +
 +
 +<code>
 + // 状態遷移の実現
 + 終了状態=「」。
 + 時計=タイマー!作る「状態!実行」実行。
 + 
 + // 状態遷移のプログラム
 + かめた=タートル!作る。
 + 前進状態=「
 +  かめた!5 0 移動する。
 +  「(かめた!横の位置?)>=100」!なら「状態=上昇状態」実行。
 + 」。
 + 上昇状態=「
 +  かめた!0 5 移動する。
 +  「(かめた!縦の位置?)>=100」!なら「状態=後退状態」実行。
 + 」。
 + 後退状態=「
 +  かめた!-5 0 移動する。
 +  「(かめた!横の位置?)<=0」!なら「状態=下降状態」実行。
 + 」。
 + 下降状態=「
 +  かめた!0 -5 移動する。
 +  「(かめた!縦の位置?)<=0」!なら「状態=前進状態」実行。
 + 」。
 + 状態=前進状態。
 +</code>