【解決】宝箱が3つ並んだ時に開くギミックを作りたいです。

トピックの投稿

返信へ
pentama
記事: 6
登録日時: 2019年6月28日(金) 14:55

【解決】宝箱が3つ並んだ時に開くギミックを作りたいです。

投稿記事 by pentama »

ツクール初心者です。
数色(3~6色程)の宝箱を複数配置し、押して同色の宝箱を縦横に3つ以上並べると開く
というギミックを作りたいと考えています。(ギミックについては添付画像もご参照ください)

宝箱を押して動かす動作までは、問題なく作ることができているのですが、
どうしても「縦横に同じ色の宝箱が3つ以上並んでいる」という判定の方法と
「つながった宝箱だけをまとめて開かせる」手段が思いつかず悩んでいます。
現状ですと、スイッチや座標の変数を使用して、2つ並ぶ判定を再現するまでが限界で、
マップ上の宝箱の数が、1個増える毎に作業量も跳ね上がるような方法で効率も悪いです。

仮に宝箱を同じマップに60個程度配置したい場合でも、コピーと多くはない書き換えで量産し、
上記のギミックを再現することはできないでしょうか?

どなたかお知恵を貸して下さる方がいらっしゃれば、宜しくお願いします。
添付ファイル
【解決】宝箱が3つ並んだ時に開くギミックを作りたいです。 キャプチャ0.PNG
【解決】宝箱が3つ並んだ時に開くギミックを作りたいです。 キャプチャ.PNG
最後に編集したユーザー pentama [ 2019年7月09日(火) 00:02 ], 累計 3 回

返信 2 / 2ページ

pentama
記事: 6
登録日時: 2019年6月28日(金) 14:55

Re: 宝箱が3つ並んだ時に開くギミックを作りたいです。

投稿記事 by pentama »

ムノクラ様

サンプルのために2時間も時間を割いて頂いていたとは…
宝箱のギミックのためにそこまでしていただいてありがとうございました。
ムノクラ様の例えをお借りすると、私はRPGツクールMVは入門~初級者、
JavaScriptに関しては、使い方を見てコピーをして使う程度の入門すら怪しい状態です。
画像を見てすぐには理解することはできませんが、
イベントの画像に説明をつけて頂いているので、
実践も踏まえて一つずつ試してみます!
これまで、出来るだけイベントで解決しようという進め方をしていた私ですが、
このギミックがスクリプトを触る丁度いいきっかけになりそうです。
コードに関しましては、貼って頂いた画像からでも十分に読むことができたので、
今のところは問題なさそうです。


作り終わらないマン代理マメキュ様

マメキュ様もサンプルを作ってくださっていたのですね、ありがとうございます。
サンプルは無事開くことができました。
動かしてみたところ、基本の動きはイメージしていた通りでした。
いただいたサンプルと今回の説明を参考に
細部を理想の動きになるよう組み立ててみようと思います!




お二人には本当にお世話になりました。
教えて頂いたスクリプトを理解をするのに少し時間が掛かるかもしれませんが、
お陰様でギミックを完成させることが出来そうです。
作り終わらないマン
記事: 3
登録日時: 2019年7月08日(月) 13:44

Re: 【解決】宝箱が3つ並んだ時に開くギミックを作りたいです。

投稿記事 by 作り終わらないマン »

pentama様

私も詳しくは無くイベントコマンドの代わりに使っている感じなので
大丈夫そうでよかったです
サンプルからイベント自体をコピーして
別のゲームに張り付ければそのまま移動できるので
どこを変更すれば条件が変えれるかだけ覚えれば
使っていけると思います
アバター
ムノクラ
記事: 2119
登録日時: 2018年2月23日(金) 11:41
投稿素材
連絡する:

Re: 宝箱が3つ並んだ時に開くギミックを作りたいです。

投稿記事 by ムノクラ »

ムノクラ さんが書きました:実験しました。
結論から言うと…
JavaScriptの初級者(入門者ではなく)であれば、すぐに理解できると思います。
※自分は、RPGツクールMV中級者、JavaScript入門者レベルです…ギリギリでした(笑)
自分の中では:入門者、初級者、中級者~というレベル順です。
(「初心者」という言葉が曖昧過ぎて、凄い誤解を生みやすい業界なので、はっきりさせたいです。)
※気づいたら、これを作るだけで2時間かかるくらいの入門者ということです(笑)

流れとしては下記のようになりました。
※JavaScript入門者なので、非効率な処理をしている可能性が高いです。


条件:宝箱1,2,3(イベントID1,2,3)を並べる。

https://tkool.jp/mv/guide/006_003q.html
を参考にして、押せる宝箱を用意します。
(宝箱なので、向き固定のままで変更は要らなそうです)
メモ欄に<t:red>と入れます。

押される毎に周辺イベントの確認をする。
1.イベント自身のイベント番号を取得
2.コモンイベントを呼ぶ

SS01.png

3.コモンイベントを呼んだイベントの座標を取得
4.上下左右のイベントに適合するメモ(<t:red>)をカウント(先に上下左右の位置にプレイヤーが居た場合はスキップ処理を入れないとエラーになる)

SS02.png
SS03.png


一応は、これで動きました。
一度3つ並んだ後にどうするのか(再発動させるのかとか)は考えていないので、初回の発動までの確認しかしていません。

なにかのヒントになれば幸いです。
※コモンイベントなどのスクリプトが見にくくて、コピペしたければ、コードを貼ります。
今日は、作るところまでで(笑)
このコモンイベントは不完全でした。
横に2つ並んでいる場所の横に宝箱を置くと隣が1つしかないので、発動しません。
なので、周囲に1つしか無い場合は、更にその隣のイベントで再チェックする必要があります。
今書いてある処理が理解できれば、このコメントで追記すべきことは分かると思いますが…。

マメキュ様が完成品を出されているようなので、自分はここまでとさせていただきます。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
返信する

“MV:質問”に戻る