今日のツクールMZスクリプト【21】フィールド上で船を呼び出す

フィールド上で海に向かって決定キーを押したときに船を呼び出すものを作ります。

 

 

f:id:werewolftan:20220213215557p:plain

 

上の画像のように海面にリージョンを設定して、そのリージョンの値によって条件分岐させます。

 

適当な場所にイベントを作成して、「トリガーを並列処理」にします。

 

海に向かって決定キーを押したときに船を出したいので、

決定キーを入力したことを取得するために

Input.isPressed('ok')

を使います。

 

〇参考

マウスイベント、キーイベント検知についてのまとめ / RPGツクールMV小技・Tips集 (rpgmaker-script-wiki.xyz)

 

f:id:werewolftan:20220213215906p:plain

 

さらにプレイヤーの向きを取得します

$gamePlayer.direction()

で数値が戻り値でかえってきます。

 

ツクールの仕様で

下向き→2

上向き→8

左向き→4

右向き→6

(テンキーに対応する数字)

となっているのでその値によって条件分岐させます

 

下向きの時は

$gamePlayer.direction() == 2

 

また、プレイヤーの一つ下の座標のリージョンが1であることも条件になるので

$gameMap.regionId(x,y)

を利用して

$gameMap.regionId($gamePlayer.x, $gamePlayer.y + 1) ==1

も条件になります。(プレイヤーの一つ下なのでy座標に1加算)

 

f:id:werewolftan:20220213220826p:plain

今回はスクリプトで条件分岐も書いています

 

この条件を満たした時に船を出現させます。

 

乗り物の位置設定、

$gameMap.vehicle(乗り物ID).setLocation(マップID, x座標, y座標)

を使います。

 

乗り物IDは

(0:小型船 1:大型船 2:飛行船)

 

サンプルで作っているマップIDが3でプレイヤの一つ下に出現させたいので

$gameMap.vehicle(1).setLocation(3, $gamePlayer.x, $gamePlayer.y + 1);

と実行します。

 

f:id:werewolftan:20220213221459p:plain

 

同様に他の向きについても作ると、海に向かって決定キーを押すと船が出現して乗ることができます。