ごくごく単純な、「プレイヤーを追う敵」です。 背景.png用に整えられています。途中の障害物は無い設定。 斜めの四方向に1回1マス進み、緑色の部分には進めない。 マス目は右にX軸、下にY軸、左上を(1,1)、右下を(11,15)に取っています。 【オプション】のレイヤーの設定≠ナ、ユーザーレイヤーを2つ作っておきます。 レイヤー名は〈敵〉と〈プ〉。(「プレイヤー」の「プ」) 数値変数も【オプション】の変数の設定≠ナ作っておきます。 [プX][プY]…プレイヤーがいるマスが何マス目か [敵X][敵Y]…敵がいるマスが何マス目か [X][Y]…移動先のマス目、マス目から換算した座標 「スタートページ」「XY」「プ」「左上」「左下」「右上」「右下」「敵」「終了」 +調整方法 「スタートページ」
最初に背景を表示し、プレイヤーと敵の初期位置を設定して、それぞれの画像を表示して、先手のプレイヤーから始めます。 サンプルでは初期位置をプレイヤー(1,1)、敵(11,15)にしています。 「XY」
プレイヤーまたは敵がいるマス目から、キャラ画像を表示する座標を換算します。 サンプルではプレイヤーも敵もプレイヤーの移動先も、一コマの中の同じ位置に表示しています。 コミメカ3の座標は左上を(0,0)として右と下に数値が増えていきます。 [X][Y]に何マス目かを入れておいて「XY」をサブルーチンコールし、座標に換算してサブルーチンから復帰します。 サンプルでは[X]←[X]×50+ 9、[Y]←[Y]×24+27にしています。 「プ」
プレイヤーの番です。 プレイヤーが移動場所を選択するダイナミックレイヤーを作成します。 ![]() 移動先の座標は、「左上」「左下」「右上」「右下」をそれぞれサブルーチンコールして[X][Y]に入れます。 サンプルでは、(0,〜)(〜,0)(12,〜)(〜,16)は進めません。 左上は(0,〜)(〜,0)でない時、左下は(0,〜)(〜,16)でない時、右上は(12,〜)(〜,0)でない時、右下は(12,〜)(〜,16)でない時にダイナミックレイヤーを作成します。 プレイヤーが選択するのを待ち、選択したサブルーチンコール先でその場所が何マス目かを[X][Y]に入れて、[プX][プY]に移し。 「XY」をサブルーチンコールして表示座標を換算して戻り、新しい位置に〈プ〉を移動させ、次の敵の番「敵」に移ります。 「左上」「左下」「右上」「右下」
「敵」
敵の番です。 プレイヤーとの位置関係から、プレイヤーに近づくマス目を計算して移動します。 [プX]>[敵X]ならX方向に+1、そうでない時は[プX]<[敵X]しかないので、X方向に−1。 [敵Y]も同様にして、プレイヤーを追いかけます。 決めた次の[敵X][敵Y]を[X][Y]に入れて「XY」をサブルーチンコール。 「XY」で表示座標を換算して戻り、新しい位置に〈敵〉を移動させ、([プX],[プX])=([敵X],[敵Y])ならプレイヤーを捕まえたので、「終了」へ。 そうでなければ、まだ追いかけている途中なので、次のプレイヤーの番「プ」へ。 「終了」
「敵」で敵がプレイヤーを捕まえたので、追いかけっこ終了です。 「スタートページ」に戻ります。 調整方法 調整のポイントは、 ・マップのマス目の数 ・キャラ画像の表示位置 ・キャラの初期位置 ・マップの形 です。 ・マップのマス目の数 座標に揃えて、一番左がX1で右に増え、一番上がY1で下に増えていくように数を割り振ると後の計算が楽です。 「プ」のオレンジ色の数値を、マップのマス目の数によって変えてください。 9行13列に取るなら、IF[X]≠10(9+1)、IF[Y]≠14(13+1)、のようにします。 ・キャラ画像の表示位置 サンプルではマス目に対して、 [X]=[X]×50+ 9 [Y]=[Y]×24+27 に表示しています。 「XY」の緑色の数値を変えてください。 (1,1)に(150,170)、(2,2)に(250,270)で表示したい時は、 [X]=[X]×100+50 [Y]=[Y]×100+70 なので、
・キャラの初期位置 サンプルのマップの場合は、 プ先手 プ(偶,偶)敵(偶,偶) プ先手 プ(奇,奇)敵(奇,奇) 敵先手 プ(偶,偶)敵(奇,奇) 敵先手 プ(奇,奇)敵(偶,偶) の4通りの内のどれかなら、敵はプレイヤーを捕まえることが出来ます。 これら以外だと、プレイヤーの近くまで行っても捕まえられません。 「スタートページ」の青文字の数値を、お好みの初期位置に変えてください。 ・マップの形 違う形の例としては、 ![]() などがあります。 この例はサンプルと同じように進められますが、初期位置は、 プ先手 プ(偶,奇)敵(偶,奇) プ先手 プ(奇,偶)敵(奇,偶) 敵先手 プ(偶,奇)敵(奇,偶) 敵先手 プ(奇,偶)敵(偶,奇) の4通りの内のどれかになります。 ・他 敵に捕まるまで何回移動したか、を出したい時は。 数値変数[回]を作り、「スタートページ」で[回]←0にして、「プ」で「敵」に移動する前に[回]←[回]+1にしてメッセージの表示などで表示します。 |