【解決済】2つの座標のイベントを入れ替える方法

kagami
記事: 18
登録日時: 2018年11月22日(木) 20:44

【解決済】2つの座標のイベントを入れ替える方法

投稿記事by kagami » 2021年4月22日(木) 23:30

ボタンを押すと座標Aと座標Bにあるイベントの位置が入れ替わる、という挙動が組めずにいます。

指定位置の取得で、座標Aと座標BのイベントIDを取得したまでは良かったのですが、
その2つのイベントを「移動ルートの設定」で移動させて入れ替える、という動きができません。
スクリプトを使うような気はしていますが…
もしわかる方いましたら教えて頂けると嬉しいです。
最後に編集したユーザー kagami on 2021年4月24日(土) 00:52 [ 編集 1 回目 ]

sally
記事: 119
登録日時: 2019年8月06日(火) 05:11

Re: 2つの座標のイベントを入れ替える方法

投稿記事by sally » 2021年4月22日(木) 23:51

ご質問の内容は、
AとBの座標は取得できているが、移動がうまくいかないということでよいでしょうか。

それでしたら、イベントの位置設定を使えばできるかと思います。

もしくは、AとBのイベントページをスイッチで切り替えて、
グラフィックとイベント内容だけが入れ替わるという擬似的な方法もあります。
kagami
記事: 18
登録日時: 2018年11月22日(木) 20:44

Re: 2つの座標のイベントを入れ替える方法

投稿記事by kagami » 2021年4月23日(金) 01:05

>sally様
ご返答ありがとうございます。
イベントの位置設定だと、座標上のイベントIDが使えずできませんでした。

すみません、説明不足でした。
実はAとBのほかにもイベントがあって、それらが頻繁に入れ替わるイメージです。
下記の図で説明すると、〇がボタンでこれを押すとその両側の●Aと●B(もしくは●Bと●C)の位置にあるイベントが入れ替わる、という事がやりたいのです。
なので座標上のイベントIDを都度チェックして入れ替えたいと思っています。

A  B  C
● ● ●

 〇 〇 

少々わかりにくくて申し訳ないです。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: 2つの座標のイベントを入れ替える方法

投稿記事by ムノクラ » 2021年4月23日(金) 07:20

kagami さんが書きました:>sally様
ご返答ありがとうございます。
イベントの位置設定だと、座標上のイベントIDが使えずできませんでした。

すみません、説明不足でした。
実はAとBのほかにもイベントがあって、それらが頻繁に入れ替わるイメージです。
下記の図で説明すると、〇がボタンでこれを押すとその両側の●Aと●B(もしくは●Bと●C)の位置にあるイベントが入れ替わる、という事がやりたいのです。
なので座標上のイベントIDを都度チェックして入れ替えたいと思っています。

A  B  C
● ● ●

 〇 〇 

少々わかりにくくて申し訳ないです。


まだ不明点が多い(イベントが入れ替わるの詳細が不明)ので、想像でサンプルを作りました。
sally氏の言う「グラフィックとイベント内容だけが入れ替わるという擬似的な方法」です。
Map001.zip
(1.03 KiB) ダウンロード数: 4 回


新規プロジェクトを作成して、解凍したファイルをdataフォルダに入れて、中を見てください。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
sally
記事: 119
登録日時: 2019年8月06日(火) 05:11

Re: 2つの座標のイベントを入れ替える方法

投稿記事by sally » 2021年4月23日(金) 22:26

なるほど。
イベントではなく、指定した座標が軸なのですね。

イベントの数やIDが固定されていないとのことですので、
確かに仰るとおり
指定座標上のイベントIDを取得し、
変数に代入し、
位置を交換する

という手順が必要かと思います。

スクリプトのイベントの位置指定にて、
キャラクター(イベントID )を変数に出来れば可能そうですが、いま検証ができないので確かなことが言い切れないです。

お役にたてず申し訳ありません…。

他の方のご回答にお任せします…。
名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

Re: 2つの座標のイベントを入れ替える方法

投稿記事by 名無し蛙 » 2021年4月23日(金) 22:56

イベントの位置設定で動的に対象イベントを指定出来ない事だけがネックになっているのなら
多分聞きたいのはこういう事だと思いますね

コード: 全て選択

// 指定座標のイベント配列を取得
const a = $gameMap.eventsXy(X座標, Y座標);
const b = $gameMap.eventsXy(X座標, Y座標);

// aとbが空で無ければ配列先頭イベントの位置情報を交換
if ( a.length && b.length ) a[0].swap(b[0]);
kagami
記事: 18
登録日時: 2018年11月22日(木) 20:44

Re: 2つの座標のイベントを入れ替える方法

投稿記事by kagami » 2021年4月24日(土) 00:52

>ムノクラ様
サンプルまで作ってくださりありがとうございます。
今回実装したいものとは少々異なっていたのですが、ボタンが1つだけの場合のイベントでこちらの方法が活かせそうです。
参考にさせて頂きたいと思います。

>sally様
いえいえ、アイディアを頂けてありがたかったです。

>名無し蛙様
こちらのスクリプトでやりたいことが実装できました!
解決できてとても嬉しいです。ありがとうございます。

皆様、ご協力ありがとうございました。

“MV:質問” へ戻る