今日のツクールMZスクリプト【21】フィールド上で船を呼び出す
フィールド上で海に向かって決定キーを押したときに船を呼び出すものを作ります。
上の画像のように海面にリージョンを設定して、そのリージョンの値によって条件分岐させます。
適当な場所にイベントを作成して、「トリガーを並列処理」にします。
海に向かって決定キーを押したときに船を出したいので、
決定キーを入力したことを取得するために
Input.isPressed('ok')
を使います。
〇参考
マウスイベント、キーイベント検知についてのまとめ / RPGツクールMV小技・Tips集 (rpgmaker-script-wiki.xyz)
さらにプレイヤーの向きを取得します
$gamePlayer.direction()
で数値が戻り値でかえってきます。
ツクールの仕様で
下向き→2
上向き→8
左向き→4
右向き→6
(テンキーに対応する数字)
となっているのでその値によって条件分岐させます
下向きの時は
$gamePlayer.direction() == 2
また、プレイヤーの一つ下の座標のリージョンが1であることも条件になるので
$gameMap.regionId(x,y)
を利用して
$gameMap.regionId($gamePlayer.x, $gamePlayer.y + 1) ==1
も条件になります。(プレイヤーの一つ下なのでy座標に1加算)
この条件を満たした時に船を出現させます。
乗り物の位置設定、
$gameMap.vehicle(乗り物ID).setLocation(マップID, x座標, y座標)
を使います。
乗り物IDは
(0:小型船 1:大型船 2:飛行船)
サンプルで作っているマップIDが3でプレイヤの一つ下に出現させたいので
$gameMap.vehicle(1).setLocation(3, $gamePlayer.x, $gamePlayer.y + 1);
と実行します。
同様に他の向きについても作ると、海に向かって決定キーを押すと船が出現して乗ることができます。