解決済み:[Ace]接触している時に実行し続けるイベント

返信する
いおん
記事: 32
登録日時: 2020年5月18日(月) 23:57

解決済み:[Ace]接触している時に実行し続けるイベント

投稿記事 by いおん »

プレイヤーが接触した時ではなく、接触しているときに並列実行するイベントを作りたいです。
どなたかよろしくお願いいたします。
最後に編集したユーザー いおん [ 2023年12月21日(木) 20:17 ], 累計 1 回
アバター
工作員X
記事: 15
登録日時: 2023年9月02日(土) 13:46
連絡する:

Re: [Ace]接触している時に実行し続けるイベント

投稿記事 by 工作員X »

プレイヤーと隣接している時に実行するイベントであれば、以下の様にして作れます。

まず下のスクリプトをスクリプトエディタに貼り付けてください。

コード: 全て選択

class Game_Character < Game_CharacterBase
  def neighbor?(character, distance = 1)
    dx = (@x - character.x).abs
    dx = $game_map.width - dx if $game_map.loop_horizontal? && dx > $game_map.width / 2
    dy = (@y - character.y).abs
    dy = $game_map.height - dy if $game_map.loop_vertical? && dy > $game_map.height / 2
    dx + dy <= distance
  end
end
そしてイベントに条件分岐を追加し、以下のスクリプトを設定します。
(イベントトリガーは並列処理に設定)

コード: 全て選択

$game_player.neighbor?($game_map.events[イベントID])
[]内は隣接判定を取るイベントのIDを指定します。

仕組みとしては単純にプレイヤーとイベントとの距離を計算して、
1マス以上離れていなければ実行、としているだけです。
スパイじゃなくてクラフターだっ!
RGSS3の素材とか作ってます。
https://under-overworld.hatenablog.jp/e ... 3-material
いおん
記事: 32
登録日時: 2020年5月18日(月) 23:57

Re: 解決済み:[Ace]接触している時に実行し続けるイベント

投稿記事 by いおん »

イメージ通りに出来ました!!
工作員X様、どうもありがとうごさいます!!
返信する

“VX / Ace:質問”に戻る