【解決済み】自分より後ろの数字のイベントIDを取得したい

ぼた餅
記事: 187
登録日時: 2016年7月17日(日) 20:22

【解決済み】自分より後ろの数字のイベントIDを取得したい

投稿記事by ぼた餅 » 2018年10月02日(火) 16:49

こんにちは。

うまく説明できないのですが…
・イベントID5を動かす
・接触したイベントのIDを取得するように設定する
・接触対象がイベントID5未満ならば取得できる
・が、ID6以上の場合は取得できず、自分(ID5)を取得してしまう
このような状況が発生しております。

イベントIDの取得は

コード: 全て選択

  ◆変数の操作:#0001 イベントX座標 = this.character(動かすイベントのID).x
  ◆変数の操作:#0002 イベントY座標 = this.character(動かすイベントのID).y
  ◆指定位置の情報取得:足元イベントID, イベントID, ({イベントX座標},{イベントY座標})

このように作っています。
上のほうでは接触と書きましたが、厳密にはイベント同士が重なり合ってから取得するようにしています。

これは参考になるかわかりませんが、すごろくを作っており、
コマ(イベント)が止まったマス(接触イベント)のIDを取得したいといった背景にあります。


どなたかこの問題を解決できる知恵をお貸しください。
最後に編集したユーザー ぼた餅 on 2018年10月03日(水) 06:07 [ 編集 1 回目 ]

tubo
記事: 57
登録日時: 2017年10月11日(水) 16:29
お住まい: 兵庫県
連絡を取る:

Re: 自分より後ろの数字のイベントIDを取得したい

投稿記事by tubo » 2018年10月02日(火) 19:42

自分と同じマスにある自分以外のイベントを取得します
numで指定した数を同時取得します
コモンでも動くっぽいです

コード: 全て選択

// vid:4 num:4 の場合、変数 4,5,6,7 にデータが入ります
let vid = 4; // 受け取る変数の番号
let num = 4; // 取得するイベント数
let eid = this.eventId(); // 確認元のイベント
for (let i=0; i<num; i++) { $gameVariables.setValue(vid+i,null); }
let own = $gameMap.event(eid);
let get = $gameMap.eventsXy(own.x,own.y).filter(function(event){
  return own.eventId() !== event.eventId(); });
for (let i=0; i<get.length && i<num; i++) {
  $gameVariables.setValue(vid+i,get[i]?get[i].eventId():null); }
ぼた餅
記事: 187
登録日時: 2016年7月17日(日) 20:22

Re: 自分より後ろの数字のイベントIDを取得したい

投稿記事by ぼた餅 » 2018年10月03日(水) 06:06

tuboさん

返信ありがとうございます。
希望通りの挙動を確認いたしました。

このような方法があるんですね…びっくりです。
おかげさまで、やりたかったことができそうです!
ありがとうございました!

“MV:質問” へ戻る