【はじめてのプチコン】マップでの判定方法(3) | りょうのゲーム塾

りょうのゲーム塾

再開、準備中。

今回は前回の応用でできると思います。

通路にいるプレイヤが指定された方向に進めるか、
判定するプログラムはどうなるでしょうか?

ここでプレイヤの位置を保存する変数をPX,PYとします。
プレイヤが右に進むためには右キー(ボタン)が押されている必要がありますが、
押されていたとしても右に壁があったら進めません。

要するに進めるか判定する必要があります。

すでに位置X,Yのマップデータが通路かどうかをチェックする
MAPCHKTサブルーチンがあるのでそれを利用します。

ここでは右に進めるか判断するサブルーチンを作成してみましょう。

MAPCHKTサブルーチンは変数X,Yの位置を調べ変数MAPRESに、
通路であれば0そうでなければ1が代入されて帰ってきます。

この条件で右に移動できるかどうかを判定するプログラムは、

X=PX+1
Y=PY
GOSUB @MAPCHKT
IF MAPRES GOTO @L0001
LOCATE PX,PY
PRINT ” ”;
PX=X
LOCATE PX,PY
PRINT ”人”;
@L0001

プレイヤの右を調べたいので調べる位置X,Yは
プレイヤのX座標がPX+1となります。

MAPCHKTサブルーチンで判定して壁だった場合には次のステップへ進みます。
通路だったら現在位置のプレイヤを消して、プレイヤ位置の更新をし、
その位置に人を表示します。