#==============================================================================
# ◆하이 데쉬 시스템 ver.1.0
# http://www.ac.cyberhome.ne.jp/~daydream/
#==============================================================================
# 설명
# 버튼을 누르면, 이동 속도가 빨라지게 됩니다.
# 쭉 데쉬 하고 있으면, 더욱 빨라집니다.
#==============================================================================
module DASH
# ● 사용 키
DASH_BUTTON = Input::C
# ● 통상의 이동 속도
NORMAL_SPEED = 4
# ● 데쉬시의 이동 속도
DASH_SPEED = 5
# ● 하이 데쉬시의 이동 속도
HIGH_SPEED = 5.5
# ● 하이 데쉬를 사용
HIGH_DASH = true
# ● 하이 데쉬 이행 시간(20분의 1초)
HIGH_TIME = 30
# ● 데쉬 사용 불가 스윗치 ID
NOT_SWITCH = 1
# ● 하이 데쉬 사용 불가 스윗치 ID
HIGH_NOT_SWITCH = 2
end
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
@dash = 0 if @dash == nil
# 로컬 변수에 이동중인지 어떤지를 기억
last_moving = moving?
# 이동중, 이벤트 실행중, 이동 루트 강제중,
# 메세지 윈도우 표시중의 머지않아도 아닌 경우
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
if $game_switches[DASH::NOT_SWITCH] == false
if Input.press?(DASH::DASH_BUTTON)
if @move_speed != DASH::DASH_SPEED
@move_speed = DASH::DASH_SPEED
end
if $game_switches[DASH::HIGH_NOT_SWITCH] == false
@dash += 1
if @dash >= DASH::HIGH_TIME
if @move_speed != DASH::HIGH_SPEED
@move_speed = DASH::HIGH_SPEED
end
end
end
else
if @move_speed != DASH::NORMAL_SPEED
@move_speed = DASH::NORMAL_SPEED
end
@dash = 0
end
else
if @move_speed != DASH::NORMAL_SPEED
@move_speed = DASH::NORMAL_SPEED
end
end
# 방향 버튼이 밀리고 있으면, 그 방향에 플레이어를 이동
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
end
# 로컬 변수에 좌표를 기억
last_real_x = @real_x
last_real_y = @real_y
super
# 캐릭터가 아래로 이동해, 한편 화면상의 위치가 중앙에서(보다) 아래의 경우
if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
# 맵을 아래에 스크롤
$game_map.scroll_down(@real_y - last_real_y)
end
# 캐릭터가 왼쪽으로 이동해, 한편 화면상의 위치가 중앙에서(보다) 왼쪽의 경우
if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
# 맵을 왼쪽으로 스크롤
$game_map.scroll_left(last_real_x - @real_x)
end
# 캐릭터가 오른쪽으로 이동해, 한편 화면상의 위치가 중앙에서(보다) 오른쪽의 경우
if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
# 맵을 오른쪽으로 스크롤
$game_map.scroll_right(@real_x - last_real_x)
end
# 캐릭터가 위로 이동해, 한편 화면상의 위치가 중앙에서(보다) 위의 경우
if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
# 맵을 위에 스크롤
$game_map.scroll_up(last_real_y - @real_y)
end
# 이동중이 아닌 경우
unless moving?
# 전회 플레이어가 이동중이었던 경우
if last_moving
# 동위치의 이벤트와의 접촉에 의한 이벤트 기동 판정
result = check_event_trigger_here([1,2])
# 기동한 이벤트가 없는 경우
if result == false
# 디버그 모드가 ON 한편 CTRL 키가 밀리고 있는 경우를 제외해
unless $DEBUG and Input.press?(Input::CTRL)
# 엔카운트카운트다운
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
# C 버튼이 밀렸을 경우
if Input.trigger?(Input::C)
# 이동위치 및 정면의 이벤트 기동 판정
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
end
end
# 사용법은 생략. (이걸 사용할 줄 모르시면 정말 어이없는..)
# ◆하이 데쉬 시스템 ver.1.0
# http://www.ac.cyberhome.ne.jp/~daydream/
#==============================================================================
# 설명
# 버튼을 누르면, 이동 속도가 빨라지게 됩니다.
# 쭉 데쉬 하고 있으면, 더욱 빨라집니다.
#==============================================================================
module DASH
# ● 사용 키
DASH_BUTTON = Input::C
# ● 통상의 이동 속도
NORMAL_SPEED = 4
# ● 데쉬시의 이동 속도
DASH_SPEED = 5
# ● 하이 데쉬시의 이동 속도
HIGH_SPEED = 5.5
# ● 하이 데쉬를 사용
HIGH_DASH = true
# ● 하이 데쉬 이행 시간(20분의 1초)
HIGH_TIME = 30
# ● 데쉬 사용 불가 스윗치 ID
NOT_SWITCH = 1
# ● 하이 데쉬 사용 불가 스윗치 ID
HIGH_NOT_SWITCH = 2
end
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
@dash = 0 if @dash == nil
# 로컬 변수에 이동중인지 어떤지를 기억
last_moving = moving?
# 이동중, 이벤트 실행중, 이동 루트 강제중,
# 메세지 윈도우 표시중의 머지않아도 아닌 경우
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
if $game_switches[DASH::NOT_SWITCH] == false
if Input.press?(DASH::DASH_BUTTON)
if @move_speed != DASH::DASH_SPEED
@move_speed = DASH::DASH_SPEED
end
if $game_switches[DASH::HIGH_NOT_SWITCH] == false
@dash += 1
if @dash >= DASH::HIGH_TIME
if @move_speed != DASH::HIGH_SPEED
@move_speed = DASH::HIGH_SPEED
end
end
end
else
if @move_speed != DASH::NORMAL_SPEED
@move_speed = DASH::NORMAL_SPEED
end
@dash = 0
end
else
if @move_speed != DASH::NORMAL_SPEED
@move_speed = DASH::NORMAL_SPEED
end
end
# 방향 버튼이 밀리고 있으면, 그 방향에 플레이어를 이동
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
end
# 로컬 변수에 좌표를 기억
last_real_x = @real_x
last_real_y = @real_y
super
# 캐릭터가 아래로 이동해, 한편 화면상의 위치가 중앙에서(보다) 아래의 경우
if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
# 맵을 아래에 스크롤
$game_map.scroll_down(@real_y - last_real_y)
end
# 캐릭터가 왼쪽으로 이동해, 한편 화면상의 위치가 중앙에서(보다) 왼쪽의 경우
if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
# 맵을 왼쪽으로 스크롤
$game_map.scroll_left(last_real_x - @real_x)
end
# 캐릭터가 오른쪽으로 이동해, 한편 화면상의 위치가 중앙에서(보다) 오른쪽의 경우
if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
# 맵을 오른쪽으로 스크롤
$game_map.scroll_right(@real_x - last_real_x)
end
# 캐릭터가 위로 이동해, 한편 화면상의 위치가 중앙에서(보다) 위의 경우
if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
# 맵을 위에 스크롤
$game_map.scroll_up(last_real_y - @real_y)
end
# 이동중이 아닌 경우
unless moving?
# 전회 플레이어가 이동중이었던 경우
if last_moving
# 동위치의 이벤트와의 접촉에 의한 이벤트 기동 판정
result = check_event_trigger_here([1,2])
# 기동한 이벤트가 없는 경우
if result == false
# 디버그 모드가 ON 한편 CTRL 키가 밀리고 있는 경우를 제외해
unless $DEBUG and Input.press?(Input::CTRL)
# 엔카운트카운트다운
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
# C 버튼이 밀렸을 경우
if Input.trigger?(Input::C)
# 이동위치 및 정면의 이벤트 기동 판정
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
end
end
# 사용법은 생략. (이걸 사용할 줄 모르시면 정말 어이없는..)