ページ 11

特定の床を踏んでる時だけ扉が開くようにするには

Posted: 2016年4月20日(水) 23:04
by ATK
地形タグを使って岩を特定の場所に2ヶ所置くことで扉を開いたり閉じたりすることは出来るんですけど
岩を一つとプレイヤーが乗っても扉が開いたり閉じたりするようにしたくて悩んでいるのですが、
岩Aと岩Bをどちらでも2ヶ所のどちらかに置いて、プレイヤーを残ったほうに乗せた時に反応するように作るには
どうしたらいいでしょうか?

Re: 特定の床を踏んでる時だけ扉が開くようにするには

Posted: 2016年4月23日(土) 10:25
by terunon
ATK さん

お疲れ様です。

並列処理イベントをマップのどこかに置いて、
常に「プレイヤーのX座標Y座標」「岩のX座標Y座標」を取得して、
プレイヤーの座標の地形タグ==指定の地形タグ  または 岩の地形タグ == 指定の地形タグ のとき
スイッチON,そうでないときOFF とすれば良いかと思われます。

イベントコマンドだけで行うと、スクリプト併用と比べて使う変数量が多いのと、少し処理が重くなるのとがありますが、ものすごい広いマップなどでなければ誤差の範囲と思います。もし問題があればまた教えてください。

ex)変数ID1~9を使用し、岩2つとプレイヤーで地形タグID1、2を使って、仕掛け2か所に対し判定を行う場合
◆並列処理イベント
変数0001 = プレイヤーX
変数0002 = プレイヤーY
変数0003 = 岩1のX
変数0004 = 岩1のY
変数0005 = 岩2のX
変数0006 = 岩2のY
指定座標の情報取得(地形タグ) 変数0007 = プレイヤーX、Y
指定座標の情報取得(地形タグ) 変数0008 = 岩1のX、Y
指定座標の情報取得(地形タグ) 変数0009 = 岩2のX、Y
条件分岐(スクリプト) ※以下は、「変数7が1、または変数8が1、または変数9が1のとき」の意味です。
$gameVariables.value(7) == 1 || $gameVariables.value(8) == 1 || $gameVariables.value(9) == 1
 スイッチ:仕掛け1起動をON
それ以外のとき
 スイッチ:仕掛け1起動をOFF

条件分岐(スクリプト)
$gameVariables.value(7) == 2 || $gameVariables.value(8) == 2 || $gameVariables.value(9) == 2
 スイッチ:仕掛け2起動をON
それ以外のとき
 スイッチ:仕掛け2起動をOFF

◆扉のイベント
スイッチ:仕掛け1起動、スイッチ:仕掛け2起動がONのときイベントページ変化

以上でいかがでしょうか?
制作応援してます。

Re: 特定の床を踏んでる時だけ扉が開くようにするには

Posted: 2016年4月23日(土) 14:23
by ATK
terunonさん
ありがとうございます!
初心者なもので、わからないことだらけなのですが
おかげ様で悩みが一つ解決しました!