特定範囲の座標を候補から排除する計算【解決】

kix
記事: 19
登録日時: 2017年7月02日(日) 18:45

特定範囲の座標を候補から排除する計算【解決】

投稿記事by kix » 2017年11月05日(日) 08:46

ひきも記(http://hikimoki.sakura.ne.jp/)で公開されている「リージョンワープ」(http://hikimoki.sakura.ne.jp/rgss3/script_map/tmrwarp.rb)についてです。
特定リージョンの座標へランダムにイベントを送れるスクリプトなのですが、移動先から除外される座標に「画面内、見える範囲」を追加してもらいたいです。
除外する座標を指定するらしい場所は解ったのですが、具体的な記述が解りません。お助け下さい。
除外する範囲はタイトに画面範囲に合わなくても、円形や四角でもかまいません。
添付ファイル
クリップボード.png
クリップボード.png (6.87 KiB) 閲覧数: 3335 回
最後に編集したユーザー kix on 2017年11月07日(火) 16:06 [ 編集 1 回目 ]

TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 特定範囲の座標を候補から排除する計算

投稿記事by TOMO » 2017年11月05日(日) 19:56

コード: 全て選択

next if $game_player.pos?(pos[0], pos[1]) # プレイヤーのいる座標は除外

の下に

コード: 全て選択

pos[0].between?(display_x, display_x + screen_tile_x) &&
pos[1].between?(display_y, display_y + screen_tile_y)

と入れれば出来ると思います

ちなみに、
「display_x」と「display_y」が画面左上のX・Y座標で、
「screen_tile_x」と「screen_tile_y」が画面内のタイル数です
kix
記事: 19
登録日時: 2017年7月02日(日) 18:45

Re: 特定範囲の座標を候補から排除する計算

投稿記事by kix » 2017年11月06日(月) 08:54

TOMO さんが書きました:

コード: 全て選択

next if $game_player.pos?(pos[0], pos[1]) # プレイヤーのいる座標は除外

の下に

コード: 全て選択

pos[0].between?(display_x, display_x + screen_tile_x) &&
pos[1].between?(display_y, display_y + screen_tile_y)

と入れれば出来ると思います

ありがとうございます。それっぽい数字を入れたり式を入れる行を変えたりして試しましたが、残念ながら何の変化もありませんでした。エラーもありません。
添付ファイル
クリップボード.png
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 特定範囲の座標を候補から排除する計算

投稿記事by TOMO » 2017年11月07日(火) 15:25

ごめん…

コード: 全て選択

next if pos[0].between?(display_x, display_x + screen_tile_x) &&
pos[1].between?(display_y, display_y + screen_tile_y)

です
kix
記事: 19
登録日時: 2017年7月02日(日) 18:45

Re: 特定範囲の座標を候補から排除する計算

投稿記事by kix » 2017年11月07日(火) 16:06

TOMO さんが書きました:ごめん…

コード: 全て選択

next if pos[0].between?(display_x, display_x + screen_tile_x) &&
pos[1].between?(display_y, display_y + screen_tile_y)

です

ありがとうございます。動きました。助けていただいてばかりで、こちらこそごめんなさい。

“VX / Ace:質問” へ戻る