岩を指定位置にのせたら扉がひらくように…(解決済)

アバター
ソウリン
記事: 42
登録日時: 2017年1月23日(月) 11:55

岩を指定位置にのせたら扉がひらくように…(解決済)

投稿記事by ソウリン » 2017年2月23日(木) 14:37

いつもお世話になっております。
詳細に書いていきますと…

・ 特定の床が存在する(スイッチ)
・ 特定の床に岩をのせると扉がひらく
・ ただし、一度岩をのせた場合はもう扉はひらいたままになる
・ もちろん特定の床に主人公がのった場合もひらく(が、はなれると閉まる)

こんな感じのものを作りたいのですが、どうにもこうにも…
Aceなどの参考記事を見て真似してみたいのですが正直いっちゃいますと1ミリくらいしか理解できませんでした。
…というわけで毎度毎度、申し訳ないのですがよろしくお願いします。

ツクール歴も浅く残念な頭なので少しかみ砕いて説明していただけると助かります( ;∀;)
最後に編集したユーザー ソウリン on 2017年2月26日(日) 16:35 [ 編集 1 回目 ]

アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by まっつUP » 2017年2月23日(木) 17:50

ソウリン様
お世話になります。

イベントコマンド「指定位置の情報取得」で様々な値が取得できることが分かると
50ミリくらいは分かって来ると思います。

追記:イベントのプライオリティにも注意しましょう。スイッチのイベントの場合は下です。
最後に編集したユーザー まっつUP on 2017年2月23日(木) 18:15 [ 編集 1 回目 ]
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
spicesh
記事: 30
登録日時: 2017年1月21日(土) 09:32

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by spicesh » 2017年2月23日(木) 18:11

ロジック的にはだいたいこんな感じだと思います。
試してないので上手く動かなかったら教えてください。

【扉の開閉イベント】
1ページ目
トリガー:なし
内容:扉を閉じる
2ページ目
トリガー:セルフスイッチAがON
内容:扉を開く
3ページ目
トリガー:セルフスイッチBがON
内容:扉を開く

【扉を開くためのスイッチ】
1ページ目
トリガー:プレイヤーが乗ったとき
内容:セルフスイッチAをON
2ページ目
トリガー:セルフスイッチAがON (並列処理)
内容:プレイヤーの位置が【扉を開くためのスイッチ】の位置と同じなら
【扉の開閉イベント】のセルフスイッチAをON
そうじゃないなら
【扉の開閉イベント】のセルフスイッチAをOFF、このイベントのセルフスイッチAをOFF

【岩のイベント】
トリガー:プレイヤーが岩を動かした
内容:岩の位置が【扉を開くためのスイッチ】の位置と同じなら
【扉の開閉イベント】のセルフスイッチBをON
アバター
ソウリン
記事: 42
登録日時: 2017年1月23日(月) 11:55

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by ソウリン » 2017年2月23日(木) 18:47

spicesh様、ご指摘ありがとうございます。

【扉の開閉イベント】
1ページ目
トリガー:なし
内容:扉を閉じる
2ページ目
トリガー:セルフスイッチAがON
内容:扉を開く
3ページ目
トリガー:セルフスイッチBがON
内容:扉を開く

上記のほうは無事に完成したのですが、次の…

【扉を開くためのスイッチ】
1ページ目
トリガー:プレイヤーが乗ったとき
内容:セルフスイッチAをON

2ページ目
トリガー:セルフスイッチAがON (並列処理)
内容:プレイヤーの位置が【扉を開くためのスイッチ】の位置と同じなら
【扉の開閉イベント】のセルフスイッチAをON
そうじゃないなら
【扉の開閉イベント】のセルフスイッチAをOFF、このイベントのセルフスイッチAをOFF

2ページ目の プレイヤーの位置が~… の位置が同じなら
の条件分岐?の部分がどのようにすればよいかわかりません( ;∀;)


>>まっつ様

いつもお世話になっています( ゚Д゚)
あれからしばらくして少しは色々と試行錯誤しているのですが…
アイス
記事: 48
登録日時: 2017年2月19日(日) 11:49

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by アイス » 2017年2月23日(木) 19:06

こんばんは
自分なりに考えてみたのですが
自分はできる限り並列処理を使いたくないので(動作が重くなるとかで

床スイッチに関しては
 床スイッチにプレイヤーが重なった時
 スイッチ1をON(扉が開く)

 その床スイッチに隣接する十字マスにスイッチ1をOFFにするイベントを置けば
 (つまり床スイッチから一歩でも動くと扉は閉まる)

とりあえずはできるかと思うのですがどうでしょう?
アイス
記事: 48
登録日時: 2017年2月19日(日) 11:49

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by アイス » 2017年2月23日(木) 19:14

ちなみに岩の方は(自分の知識内では)
並列処理を使わなければならないので
扉に関しては並列処理を使わないような作りでできたらなーと思い
提案してみました
いらんアドバイスだったらすいませんorz
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by まっつUP » 2017年2月23日(木) 19:25

スイッチのイベントのIDは1とします。
岩のイベントの実行内容中の
イベントコマンド「条件分岐」中のスクリプトで以下を評価してください。
this.character(1).x == this.character(0).x && this.character(1).y == this.character(0).y
追記:条件式の間には&が二つ入っています。
真の時の方に、扉とやらを開くための処理や条件を満たすための処理を入れてください。

(岩のイベントがプレイヤー接触時に発生し
 実行内容にはプレイヤーと同じ向きに前進するなどの処理を想定しています。)
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
ソウリン
記事: 42
登録日時: 2017年1月23日(月) 11:55

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by ソウリン » 2017年2月23日(木) 20:07

>>アイス様 ご指摘ありがとうございます
その方法、思いつきませんでした…難しくせずそちらのほうでも十分だと気づきました…
確かに並行処理ばかりだと重いですし、今回はそちらの方法を使わせていただこうと思います。


>>まっつ様
上記の通り、今回は簡易?的な手段でいこうと思います。
といっても、遅かれ早かれ出す予定なので少しご説明してもらえると助かります。

まず、岩イベントの作成なんですが…

◆移動ルートの設定:このイベント (飛ばす, ウェイト)
:        :◇向き固定OFF
:        :◇プレイヤーから遠ざかる

というものを作りまして…

次に、踏ませたい床(スイッチ)は

1ページ目は

プレイヤー接触 セルフスイッチA ON

2ページ目は

◆条件分岐:スクリプト:this.character(-1).x == this.character(0).x && this.character(-1).y == this.character(0).y
◆スイッチの操作:#0047 スイッチ2 = ON

:分岐終了

といった具合に適当に触ってみています
一応、扉は開きますが、下りたあとにも開きっぱなしです。
コピーさせていただいたスクリプトの意味?はどういったものかご説明願えませんか?
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by まっつUP » 2017年2月23日(木) 20:17

例のスクリプトは
イベントID1とこのイベントの位置が一致するときに真を返します。
1の部分を変えればそのイベントIDも参照できます。
0未満はプレイヤーを参照します。

スイッチのイベントの実行内容中の条件分岐では
偽の時に扉を閉める処理などを行えばよいのではないでしょうか。
そのイベントのそのページのトリガーが並列処理なら毎フレーム評価しているはずなので。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
ソウリン
記事: 42
登録日時: 2017年1月23日(月) 11:55

Re: 岩を指定位置にのせたら扉がひらくように…

投稿記事by ソウリン » 2017年2月23日(木) 20:36

>>まっつ様 返信いただく前にあれこれと触っていたらなんとかできました( ;∀;)

床のスイッチは

1ページ目

セルフスイッチA ON

2ページ目

並行処理

◆スイッチの操作:#0047 スイッチ2 = ON
◆条件分岐:スクリプト:this.character(-1).x == this.character(0).x && this.character(-1).y == this.character(0).y

:それ以外のとき
◆スイッチの操作:#0047 スイッチ2 = OFF
◆セルフスイッチの操作:A = OFF

:分岐終了

扉ですが…

1ページ目

並行処理

◆条件分岐:スイッチ2がON
◆SEの演奏:Open1 (90, 100, 0)
◆移動ルートの設定:このイベント (ウェイト)
:        :◇左を向く
:        :◇ウェイト:3フレーム
:        :◇右を向く
:        :◇ウェイト:3フレーム
:        :◇上を向く
:        :◇すり抜けON
◆セルフスイッチの操作:A = ON

:それ以外のとき

:分岐終了

2ページ目

◆条件分岐:スイッチ2がOFF
◆移動ルートの設定:このイベント (ウェイト)
:        :◇右を向く
:        :◇ウェイト:3フレーム
:        :◇左を向く
:        :◇ウェイト:3フレーム
:        :◇下を向く
:        :◇すり抜けON
◆セルフスイッチの操作:A = OFF

:それ以外のとき

:分岐終了

これで、スイッチを踏んだら扉がひらき、離れると扉がしまるようになりました。
どないかなるもんですね…というかあってるんでしょうか?
岩イベントはすっとばしてしまいましたが

“MV:質問” へ戻る