【解決済み】座標取得スクリプトについて

たこやきボーイ
記事: 119
登録日時: 2017年3月13日(月) 09:29

【解決済み】座標取得スクリプトについて

投稿記事by たこやきボーイ » 2017年4月28日(金) 09:45

いつもお世話になっています。
座標取得で主人公の座標取得は this.character(-1).x、this.character(-1).yというのをみつけましたが、
これの応用で主人公の隣(または、隣の隣など少し距離を空ける感じ)はどのようにしたらよいでしょうか?
主人公が移動したら、そのイベントも移動するようにしたいのです。
ご教授よろしくお願いします。

※イメージとしてはマップ上で主人公とイベントが陣形を組むような仕組みを作ろうと悩んでおります。
最後に編集したユーザー たこやきボーイ on 2017年4月29日(土) 09:16 [ 編集 1 回目 ]

アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: 座標取得スクリプトについて

投稿記事by フトコロ » 2017年4月28日(金) 23:09

こんにちは。

たこやきボーイ さんが書きました:これの応用で主人公の隣(または、隣の隣など少し距離を空ける感じ)はどのようにしたらよいでしょうか?
主人公が移動したら、そのイベントも移動するようにしたいのです。

この部分が何を知りたいのか分からなかったので、とりあえずわかることを下に書きました。

1.主人公の隣の座標が知りたい?
この場合は、this.character(-1).x や this.character(-1).y で主人公がいる座標が分かるので、
あとは、単純に足し算引き算するだけです。
1マス右側なら下のようになります。x座標は右が + です。

コード: 全て選択

x = this.character(-1).x + 1
y = this.character(-1).y

なお、Y座標は下が + ですので注意です。


2.主人公の隣にいるイベントのIDが知りたい?
この場合は、1で取得した座標を使って$gameMap.eventIdXy(x, y)というスクリプトで取得できます。
主人公の1マス右側にいるイベントのIDは下の通りです。

コード: 全て選択

eventId = $gameMap.eventIdXy(this.character(-1).x + 1 , this.character(-1).y)

その座標にイベントがいれば、そのイベントのIDが取得できます。
その座標にイベントがいない場合は、0 が返ります。


3.イベントの座標が知りたい?
イベントのIDが分かっていてその座標が知りたい場合は下のスクリプトで分かります。

コード: 全て選択

x = this.character(eventId).x
y = this.character(eventId).y



それとも、これら以外のことが知りたいのでしょうか。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
たこやきボーイ
記事: 119
登録日時: 2017年3月13日(月) 09:29

Re: 座標取得スクリプトについて

投稿記事by たこやきボーイ » 2017年4月29日(土) 09:16

フトコロさんすごく丁寧に教えていただきありがとうございます。
知りたかったのは1番の主人公の隣の座標でした。
単純に足し算引き算でよかったのですねW・・気がつきませんでした!
言葉足らずでお手数かけて申し訳ありません。
ちなみに座標を取得できまして、主人公が前進すれば、少し離れたイベントキャラも前進するように
なりましたw
しかし、座標判定の問題なのだと思いますが、若干停止して遅れて動きます。
理想はデフォルトの隊列歩行のようなスムーズな動きにしたかったけど、難しそうですw

表題の件に関しまして、フトコロさんの1番の方法で解決とします。
ありがとうございます。

“MV:質問” へ戻る