サブルーチンHITCHKが修正できたら
今度はうまく動くかどうかを
確かめてみましょう。
今回の当たり判定は移動するときにすでに誰かがそこにいるかどうかを判定しています。
当然いどうする物体(タスク)が当たり判定をする必要があります。
と言う事は。。。
移動するプレイヤとエネミですよね?
プレイヤタスクも今回少しだけ修正しておきます。
やっている事は同じなのですが、
今回のプレイヤは次の手順で動いています。
1)現在の位置を取得する
2)キー(ボタン)の入力により移動する方向を取得する。
3)移動する方向から位置を更新する。
4)移動先が壁の場合には移動しない。
5)移動できる場合はその場所にエネミもしくはターゲットタスクがいるか当たり判定を行う。
6)もし誰かに当たったら移動しない。
7)移動を行う。
8)20フレームのカウントを設定しウェイトタスクへ移行する。
となります。
エネミタスクもこれと同様に処理を行います。
1)現在の位置を取得する
2)移動する方向を取得する。
3)移動する方向から位置を更新する。
4)移動先が壁の場合には移動しない。
5)移動できる場合はその場所にプレイヤ、エネミもしくはターゲットタスクがいるか当たり判定を行う。
6)もし誰かに当たったら移動しない。
7)移動を行う。
8)20フレームのカウントを設定しウェイトタスクへ移行する。
これを未定だダければ分かりますが、
プレイヤタスクの変更は
エネミタスクとできるだけ同じコードで表したかったからです。
その方が今後理解しやすくなると思います。





