VX Ace 질문 드립니다. 도움 주시면 감사하겠습니다.
화면 밖의 몬스터는 '근접한다'로 설정해도 쫓아오지 않는데
어디서 왜 그런 버그가 있는지 이해를 못하겠습니다. 스크립트를 봐도 잘...
몬스터가 화면에 없어도 알아서 주인공을 쫓아오게 할 순 없을까요?
플레이어에게 다가간다의 정의 부분입니다.
def move_type_toward_player
if near_the_player?
case rand(20)
when 0..17; move_toward_player
when 18; move_random
when 19; move_forward
end
else
move_toward_player #move_random ->near_the_player가 아니라도 다가가게 했습니다.
end
end
플레이어에게 가까이 있느냐의 정의 부분입니다.
def near_the_player?
sx = distance_x_from($game_player.x).abs
sy = distance_y_from($game_player.y).abs
sx + sy < 100 #20 -> 바꿔봤습니다.
end
def move_toward_player
move_toward_character($game_player)
end
def move_toward_character(character)
sx = distance_x_from(character.x)
sy = distance_y_from(character.y)
if sx.abs > sy.abs
move_straight(sx > 0 ? 4 : 6)
move_straight(sy > 0 ? 8 : 2) if !@move_succeed && sy != 0
elsif sy != 0
move_straight(sy > 0 ? 8 : 2)
move_straight(sx > 0 ? 4 : 6) if !@move_succeed && sx != 0
end
end
#이건 무슨 뜻인지 잘 모르겠군요...
def move_straight(d, turn_ok = true)
@move_succeed = passable?(@x, @y, d)
if @move_succeed
set_direction(d)
@x = $game_map.round_x_with_direction(@x, d)
@y = $game_map.round_y_with_direction(@y, d)
@real_x = $game_map.x_with_direction(@x, reverse_dir(d))
@real_y = $game_map.y_with_direction(@y, reverse_dir(d))
increase_steps
elsif turn_ok
set_direction(d)
check_event_trigger_touch_front
end
end
#혹시나 이것도 넣어봤는데 이건 문제가 없겠죠..?
아무래도 move_toward_character나 move_straight에 문제가 있는 것 같은데
이걸 변형시켜서 화면 밖의 몬스터가 쫓아오게 하고 싶습니다.
아니면 여길 변형시켜도 소용없고 스크립트를 따로 짜야 하는지....
아니면 아예 안 되는 건지... 궁금합니다.
답변해주시면 감사하겠습니다.