ページ 11

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

Posted: 2017年11月05日(日) 08:46
by kix
ひきも記(http://hikimoki.sakura.ne.jp/)で公開されている「リージョンワープ」(http://hikimoki.sakura.ne.jp/rgss3/script_map/tmrwarp.rb)についてです。
特定リージョンの座標へランダムにイベントを送れるスクリプトなのですが、移動先から除外される座標に「画面内、見える範囲」を追加してもらいたいです。
除外する座標を指定するらしい場所は解ったのですが、具体的な記述が解りません。お助け下さい。
除外する範囲はタイトに画面範囲に合わなくても、円形や四角でもかまいません。

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

Posted: 2017年11月05日(日) 19:56
by 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)

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

ちなみに、
「display_x」と「display_y」が画面左上のX・Y座標で、
「screen_tile_x」と「screen_tile_y」が画面内のタイル数です

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

Posted: 2017年11月06日(月) 08:54
by kix
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)

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

ありがとうございます。それっぽい数字を入れたり式を入れる行を変えたりして試しましたが、残念ながら何の変化もありませんでした。エラーもありません。

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

Posted: 2017年11月07日(火) 15:25
by TOMO
ごめん…

コード: 全て選択

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

です

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

Posted: 2017年11月07日(火) 16:06
by kix
TOMO さんが書きました:ごめん…

コード: 全て選択

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

です

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