プレイヤーが接触した時ではなく、接触しているときに並列実行するイベントを作りたいです。
どなたかよろしくお願いいたします。
解決済み:[Ace]接触している時に実行し続けるイベント
解決済み:[Ace]接触している時に実行し続けるイベント
最後に編集したユーザー いおん [ 2023年12月21日(木) 20:17 ], 累計 1 回
Re: [Ace]接触している時に実行し続けるイベント
プレイヤーと隣接している時に実行するイベントであれば、以下の様にして作れます。
まず下のスクリプトをスクリプトエディタに貼り付けてください。
そしてイベントに条件分岐を追加し、以下のスクリプトを設定します。
(イベントトリガーは並列処理に設定)
[]内は隣接判定を取るイベントのIDを指定します。
仕組みとしては単純にプレイヤーとイベントとの距離を計算して、
1マス以上離れていなければ実行、としているだけです。
まず下のスクリプトをスクリプトエディタに貼り付けてください。
コード: 全て選択
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])
仕組みとしては単純にプレイヤーとイベントとの距離を計算して、
1マス以上離れていなければ実行、としているだけです。
Re: 解決済み:[Ace]接触している時に実行し続けるイベント
イメージ通りに出来ました!!
工作員X様、どうもありがとうごさいます!!
工作員X様、どうもありがとうごさいます!!