# ?S?????h?b?g??? Ver ??
# ?z?z???E?T?|?[?gURL
# http://members.jcom.home.ne.jp/cogwheel/
#==============================================================================
# ?? Game_Player
#------------------------------------------------------------------------------
# ?@?v???C???[???????N???X????B?C?x???g??N?????????A?}?b?v??X?N???[??????
# ?@?\?????????????B????N???X??C???X?^???X?? $game_player ??Q?????????B
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ?? ??
#--------------------------------------------------------------------------
UP = 48
DOWN = 0
SIDE = 24 # ???E??????]?T(0 < SIDE <63)
SLANT = false # ??????[?g?????????A???x?C??
#--------------------------------------------------------------------------
# ?? ???J?C???X?^???X???
#--------------------------------------------------------------------------
attr_reader :event # ?C?x???g????????x
attr_accessor :move_speed # ??????x
#--------------------------------------------------------------------------
# ?? ?t???[???X?V
#--------------------------------------------------------------------------
alias :update_original :update
def update
# @walk:???s???x @dash:?_?b?V??????????x
# @event:?C?x???g????????x?i0?????A?C?x???g??????x??X????????j
@walk = 3
@dash = 4
@event = 3
@dot_m = true
#?_?b?V???@?\?B?G???^?[?L?[???????????????A??????x????X?????B
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
if @walk != @dash
if Input.press?(Input::C)
if @move_speed != @dash
@move_speed = @dash
end
else
if @move_speed != @walk
@move_speed = @walk
end
end
end
end
if @revise_x == nil and @revise_y == nil
@revise_x = 0
@revise_y = 0
end
unless @dot_m
update_original
return
end
if @move_route_forcing
# ???[?J?????????????????????L??
last_moving = moving?
# ???[?J?????????W???L??
last_real_x = @real_x
last_real_y = @real_y
# ???W?????????????
if (@revise_x != 0 or @revise_y != 0) and not jumping? and @move == true
if @revise_x != @real_x - @x * 128 or @revise_y != @real_y - @y * 128
@revise_x = @real_x - @x * 128
@revise_y = @real_y - @y * 128
end
# ???????distance1???W????distance2?????
distance1 = 2 ** @move_speed
distance2 = Math.sqrt(@revise_x ** 2 + @revise_y ** 2)
# ???????????W???????z??????
if distance1 > distance2
# ?*???I??????W?????????
@real_x = @real_x - @revise_x
@real_y = @real_y - @revise_y
@revise_x = 0
@revise_y = 0
anime_update
# ???????????W??????B???????
else
# ???????????W???????Â*
@real_x -= (distance1 * @revise_x / distance2).round
@real_y -= (distance1 * @revise_y / distance2).round
@revise_x = @real_x - @x * 128
@revise_y = @real_y - @y * 128
anime_update
end
else
super
end
else
@move = false
# ??????A?C?x???g???s???A??????[?g?*?????A
# ???b?Z?[?W?E?B???h?E?\???????????????????
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
@event_run = false
# ?????{?^?????????????????A?????????v???C???[?????
case Input.dir8
when 1
move_lower_left_p
when 2
move_down_p
when 3
move_lower_right_p
when 4
move_left_p
when 6
move_right_p
when 7
move_upper_left_p
when 8
move_up_p
when 9
move_upper_right_p
end
end
# ???[?J?????????W???L??
last_real_x = @real_x
last_real_y = @real_y
# ???????
@real_x = @x * 128 + @revise_x
@real_y = @y * 128 + @revise_y
# ???[?J?????????????????????L??
last_moving = moving?
# ???W?X?V
move_on
# ???????W???O????W????????
if (last_real_x != @real_x or last_real_y != @real_y)
@move_distance = 0 if @move_distance == nil
@move_distance += Math.sqrt((last_real_x - @real_x) ** 2 +
(last_real_y - @real_y) ** 2)
if @move_distance >= 128
@move_distance %= 128
increase_steps
end
# ?A?j???[?V???????X?V
anime_update
else
@pattern = 0
end
end
# ?L?????N?^?[???????????A???????????u?????????????
if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
# ?}?b?v??????X?N???[??
$game_map.scroll_down(@real_y - last_real_y)
end
# ?L?????N?^?[???????????A???????????u?????????????
if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
# ?}?b?v??????X?N???[??
$game_map.scroll_left(last_real_x - @real_x)
end
# ?L?????N?^?[???E???????A???????????u???????????E???
if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
# ?}?b?v???E??X?N???[??
$game_map.scroll_right(@real_x - last_real_x)
end
# ?L?????N?^?[???????????A???????????u???????????????
if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
# ?}?b?v??????X?N???[??
$game_map.scroll_up(last_real_y - @real_y)
end
# ?O???v???C???[???????????????
if last_moving
# ????u??C?x???g????G??????C?x???g?N??????
result = check_event_trigger_here([1,2])
# ?N???????C?x???g???????
if result == false
# ?f?o?b?O???[?h?? ON ???? CTRL ?L?[?????????????????????
unless $DEBUG and Input.press?(Input::CTRL)
# ?G???J?E???g ?J?E???g?_?E??
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
# C ?{?^????????????
if Input.trigger?(Input::C)
# ????u??????????C?x???g?N??????
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
#--------------------------------------------------------------------------
# ?? ?I?u?W?F?N?g??????
#--------------------------------------------------------------------------
def initialize
@revise_x = 0
@revise_y = 0
@move == false
super
end
#--------------------------------------------------------------------------
# ?? ???????
#--------------------------------------------------------------------------
def moving?
unless @dot_m
result = super
return result
end
# ?*?????????I???W?i???????????????
if @move_route_forcing
if @move == false
return false
end
super
# ?????????W???????W???????????????????
else
return (@x != (@real_x / 128.0).round or @y != (@real_y / 128.0).round)
end
end
#--------------------------------------------------------------------------
# ?? ???????
#--------------------------------------------------------------------------
def moving_a?
if @move == false
if (@move_route.list[@move_route_index].code <= 14 or
@move_route.list[@move_route_index].code == 25)
@move = true
end
return false
end
moving?
end
#--------------------------------------------------------------------------
# ?? ?t???[???X?V (?W?????v)
#--------------------------------------------------------------------------
def update_jump
# ?W?????v?J?E???g?? 1 ????
@jump_count -= 1
# ?V???????W???v?Z
@real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1)
@real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1)
if @jump_count == 0
@revise_x = 0
@revise_y = 0
end
end
#--------------------------------------------------------------------------
# ?? ????^?C?v : ?J?X?^??
#--------------------------------------------------------------------------
def move_type_custom
unless @dot_m
super
return
end
# ???~????????????f
if jumping? or moving_a?
return
end
# ????R?}???h????X?g????????B?????????[?v
while @move_route_index < @move_route.list.size
# ????R?}???h????
command = @move_route.list[@move_route_index]
# ?R?}???h?R?[?h 0 ?? (???X?g????) ???
if command.code == 0
# ?I?v?V???? [???????J?????] ?? ON ???
if @move_route.repeat
# ??????[?g??C???f?b?N?X?????????
@move_route_index = 0
end
# ?I?v?V???? [???????J?????] ?? OFF ???
unless @move_route.repeat
# ??????[?g?*???????
if @move_route_forcing and not @move_route.repeat
# ??????[?g??*????????
@move_route_forcing = false
# ?I???W?i?????????[?g?????A
@move_route = @original_move_route
@move_route_index = @original_move_route_index
@original_move_route = nil
end
# ???~?J?E???g???N???A
@stop_count = 0
end
return
end
# ????n?R?}???h (???????`?W?????v) ???
if command.code <= 14
# ?R?}???h?R?[?h?????
case command.code
when 1 # ??????
move_down
when 2 # ??????
move_left
when 3 # ?E????
move_right
when 4 # ??????
move_up
when 5 # ????????
move_lower_left
when 6 # ?E??????
move_lower_right
when 7 # ????????
move_upper_left
when 8 # ?E??????
move_upper_right
when 9 # ?????_??????
move_random
when 10 # ?v???C???[???Â*
move_toward_player
when 11 # ?v???C???[??????????
move_away_from_player
when 12 # ?????O?i
move_forward
when 13 # ????????
move_backward
when 14 # ?W?????v
jump(command.parameters[0], command.parameters[1])
end
# ?I?v?V???? [????????????????] ?? OFF ??A??????s???
if not @move_route.skippable and not moving? and not jumping?
return
end
@move_route_index += 1
return
end
# ?E?F?C?g???
if command.code == 15
# ?E?F?C?g?J?E???g?????
@wait_count = command.parameters[0] * 2 - 1
@move_route_index += 1
return
end
# ??????X?n??R?}???h???
if command.code >= 16 and command.code <= 26
# ?R?}???h?R?[?h?????
case command.code
when 16 # ???????*
turn_down
when 17 # ???????*
turn_left
when 18 # ?E?????*
turn_right
when 19 # ???????*
turn_up
when 20 # ?E?? 90 ?x???]
turn_right_90
when 21 # ???? 90 ?x???]
turn_left_90
when 22 # 180 ?x???]
turn_180
when 23 # ?E?????? 90 ?x???]
turn_right_or_left_90
when 24 # ?????_????????]??
turn_random
when 25 # ?v???C???[????????*
turn_toward_player
when 26 # ?v???C???[??t?????*
turn_away_from_player
end
@move_route_index += 1
return
end
# ???????R?}???h???
if command.code >= 27
# ?R?}???h?R?[?h?????
case command.code
when 27 # ?X?C?b?` ON
$game_switches[command.parameters[0]] = true
$game_map.need_refresh = true
when 28 # ?X?C?b?` OFF
$game_switches[command.parameters[0]] = false
$game_map.need_refresh = true
when 29 # ??????x???X
@move_speed = command.parameters[0]
when 30 # ????p?x???X
@move_frequency = command.parameters[0]
when 31 # ??????A?j?? ON
@walk_anime = true
when 32 # ??????A?j?? OFF
@walk_anime = false
when 33 # ???~???A?j?? ON
@step_anime = true
when 34 # ???~???A?j?? OFF
@step_anime = false
when 35 # ?????Å’? ON
@direction_fix = true
when 36 # ?????Å’? OFF
@direction_fix = false
when 37 # ?????? ON
@through = true
when 38 # ?????? OFF
@through = false
when 39 # ??O???\?? ON
@always_on_top = true
when 40 # ??O???\?? OFF
@always_on_top = false
when 41 # ?O???t?B?b?N??X
@tile_id = 0
@character_name = command.parameters[0]
@character_hue = command.parameters[1]
if @original_direction != command.parameters[2]
@direction = command.parameters[2]
@original_direction = @direction
@prelock_direction = 0
end
if @original_pattern != command.parameters[3]
@pattern = command.parameters[3]
@original_pattern = @pattern
end
when 42 # ?s?????x???X
@opacity = command.parameters[0]
when 43 # ???????@???X
@blend_type = command.parameters[0]
when 44 # SE ????t
$game_system.se_play(command.parameters[0])
when 45 # ?X?N???v?g
result = eval(command.parameters[0])
end
@move_route_index += 1
return
end
end
end
#--------------------------------------------------------------------------
# ?? ??????
#--------------------------------------------------------------------------
def move_down_p
# ???????*
turn_down
# ??????????Z?o
distance = 2 ** @move_speed
down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
# ?? ????????\?????????????P
#--------------------------------------------------------------------------
def down1(x, y, distance, down = false)
result = down2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x, y+1)
return result
end
if @revise_x < -SIDE
result = down2(x, y + 1, distance, 4)
result &= down2(x - 1, y, distance)
if result == false
if down
move_lower_right_p
if @revise_x > SIDE
@revise_x = SIDE
end
end
return result
end
elsif @revise_x > SIDE
result = down2(x, y + 1, distance, 6)
result &= down2(x + 1, y, distance)
if result == false
if down
move_lower_left_p
if @revise_x < -SIDE
@revise_x = -SIDE
end
end
return result
end
end
# ????????\?????????????
@revise_y += distance
return result
end
#--------------------------------------------------------------------------
# ?? ????????\?????????????Q
#--------------------------------------------------------------------------
def down2(x, y, distance, d = 2)
if @revise_y + distance > DOWN
unless passable?(x, y, d)
if @revise_y < DOWN
@revise_y = DOWN
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
# ?? ??????
#--------------------------------------------------------------------------
def move_left_p
# ???????*
turn_left
distance = 2 ** @move_speed
left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
# ?? ????????\?????????????P
#--------------------------------------------------------------------------
def left1(x, y, distance, left = false)
result = left2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x-1, y)
return result
end
if @revise_y < -UP
result = left2(x - 1, y, distance, 8)
result &= left2(x, y - 1, distance)
if result == false
if left
move_lower_left_p
if @revise_y > DOWN
@revise_y = DOWN
end
end
return result
end
elsif @revise_y > DOWN
result = left2(x - 1, y, distance, 2)
result &= left2(x, y + 1, distance)
if result == false
if left
move_upper_left_p
if @revise_y < -UP
@revise_y = -UP
end
end
return result
end
end
@revise_x -= distance
return result
end
#--------------------------------------------------------------------------
# ?? ????????\?????????????Q
#--------------------------------------------------------------------------
def left2(x, y, distance, d = 4)
if @revise_x - distance < -SIDE
unless passable?(x, y, d)
if @revise_x > -SIDE
@revise_x = -SIDE
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
# ?? ?E????
#--------------------------------------------------------------------------
def move_right_p
# ?E?????*
turn_right
distance = 2 ** @move_speed
right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
# ?? ?E??????\?????????????P
#--------------------------------------------------------------------------
def right1(x, y, distance, right = false)
result = right2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x+1, y)
return result
end
if @revise_y < -UP
result = right2(x + 1, y, distance, 8)
result &= right2(x, y - 1, distance)
if result == false
if right
move_lower_right_p
if @revise_y > DOWN
@revise_y = DOWN
end
end
return result
end
elsif @revise_y > DOWN
result = right2(x + 1, y, distance, 2)
result &= right2(x, y + 1, distance)
if result == false
if right
move_upper_right_p
if @revise_y < -UP
@revise_y = -UP
end
end
return result
end
end
@revise_x += distance
return result
end
#--------------------------------------------------------------------------
# ?? ?E??????\?????????????Q
#--------------------------------------------------------------------------
def right2(x, y, distance, d = 6)
if @revise_x + distance > SIDE
unless passable?(x, y, d)
if @revise_x < SIDE
@revise_x = SIDE
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
# ?? ??????
#--------------------------------------------------------------------------
def move_up_p
# ???????*
turn_up
# ??????
distance = 2 ** @move_speed
up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
# ?? ????????\?????????????P
#--------------------------------------------------------------------------
def up1(x, y, distance, up = false)
result = up2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x, y-1)
return result
end
if @revise_x < -SIDE
result = up2(x, y - 1, distance, 4)
result &= up2(x - 1, y, distance)
if result == false
if up
move_upper_right_p
if @revise_x > SIDE
@revise_x = SIDE
end
end
return result
end
elsif @revise_x > SIDE
result = up2(x, y - 1, distance, 6)
result &= up2(x + 1, y, distance)
if result == false
if up
move_upper_left_p
if @revise_x < -SIDE
@revise_x = -SIDE
end
end
return result
end
end
@revise_y -= distance
return result
end
#--------------------------------------------------------------------------
# ?? ????????\?????????????Q
#--------------------------------------------------------------------------
def up2(x, y, distance, d = 8)
if @revise_y - distance < -UP
unless passable?(x, y, d)
if @revise_y > -UP
@revise_y = -UP
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
# ?? ????????
#--------------------------------------------------------------------------
def move_lower_left_p
# ?????Å’???????
unless @direction_fix
# ?E??????????????????A??????????????????????*
@direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)
end
# ????????
distance = (2 ** @move_speed) / Math.sqrt(2)
turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_down if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 2, distance)
result = check_event_trigger_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y > DOWN and -UP > @revise_y - distance
@revise_y = DOWN
end
turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_left if @event_run
end
end
#--------------------------------------------------------------------------
# ?? ?E??????
#--------------------------------------------------------------------------
def move_lower_right_p
# ?????Å’???????
unless @direction_fix
# ????????????????E???A??????????????????????*
@direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
end
# ?E??????
distance = (2 ** @move_speed) / Math.sqrt(2)
turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_down if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 2, distance)
result = check_event_trigger_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y > DOWN and -UP > @revise_y - distance
@revise_y = DOWN
end
turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_right if @event_run
end
end
#--------------------------------------------------------------------------
# ?? ????????
#--------------------------------------------------------------------------
def move_upper_left_p
# ?????Å’???????
unless @direction_fix
# ?E??????????????????A??????????????????????*
@direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
end
# ????????
distance = (2 ** @move_speed) / Math.sqrt(2)
turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_up if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 8, distance)
result = check_event_trigger_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y + distance > DOWN and -UP > @revise_y
@revise_y = -UP
end
turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_left if @event_run
end
end
#--------------------------------------------------------------------------
# ?? ?E??????
#--------------------------------------------------------------------------
def move_upper_right_p
# ?????Å’???????
unless @direction_fix
# ????????????????E???A??????????????????????*
@direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
end
# ?E??????
distance = (2 ** @move_speed) / Math.sqrt(2)
turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_up if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 8, distance)
result = check_event_trigger_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y + distance > DOWN and -UP > @revise_y
@revise_y = -UP
end
turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_right if @event_run
end
end
#--------------------------------------------------------------------------
# ?? ????u??C?x???g?N??????
#--------------------------------------------------------------------------
def check_event_trigger_here(triggers, run = true)
result = false
# ?C?x???g???s?????
if $game_system.map_interpreter.running?
return result
end
# ?S?C?x???g????[?v
for event in $game_map.events.values
# ?C?x???g????W??g???K?[?????v??????
if event.x == ((@x * 128 + @revise_x) / 128.0).round and
event.y == ((@y * 128 + @revise_y) / 128.0).round and
triggers.include?(event.trigger)
# ?W?????v????O??A?N??????????u??C?x???g???
if not event.jumping? and event.over_trigger?
if event.list.size > 1
if run == true
event.start
end
result = true
end
end
end
end
return result
end
#--------------------------------------------------------------------------
# ?? ???W?C??
#--------------------------------------------------------------------------
def move_on
if @y < (@y + @revise_y / 128.0).round
@y += 1
@revise_y -= 128
end
if @x > (@x + @revise_x / 128.0).round
@x -= 1
@revise_x += 128
end
if @x < (@x + @revise_x / 128.0).round
@x += 1
@revise_x -= 128
end
if @y > (@y + @revise_y / 128.0).round
@y -= 1
@revise_y += 128
end
end
#--------------------------------------------------------------------------
# ?? ?A?j???[?V?????A?b?v?f?[?g
#--------------------------------------------------------------------------
def anime_update
# ??????A?j???? ON ???
if @walk_anime
# ?A?j???J?E???g?? 1.5 ????
@anime_count += 1.5
# ??????A?j???? OFF ??A???~???A?j???? ON ???
elsif @step_anime
# ?A?j???J?E???g?? 1 ????
@anime_count += 1
end
# ?A?j???J?E???g??????l??????????
# ??????l??A???{?l 18 ??????????x * 1 ?????????l
if @anime_count > 18 - @move_speed * 2
# ???~???A?j???? OFF ???? ???~?????
if not @step_anime and @stop_count > 0
# ?p?^?[?????I???W?i??????
@pattern = @original_pattern
# ???~???A?j???? ON ????? ????????
else
# ?p?^?[?????X?V
@pattern = (@pattern + 1) % 4
end
# ?A?j???J?E???g???N???A
@anime_count = 0
end
end
#--------------------------------------------------------------------------
# ?? ?w????u????
#--------------------------------------------------------------------------
# ?I???W?i????C?x???g??????
alias :moveto_original :moveto
def moveto(x, y)
# ?????W????????
@revise_x = 0
@revise_y = 0
# ?I???W?i????C?x???g?????o??
moveto_original(x, y)
end
#--------------------------------------------------------------------------
# ?? ???????????????????
#--------------------------------------------------------------------------
def last_move?(x, y, direction, distance)
if direction == 2 or direction == 6
distance *= -1
end
if (direction == 2 or direction == 8) and
(y / 128.0).round != ((y - distance) / 128.0).round
return true
end
if (direction == 4 or direction == 6) and
(x / 128.0).round != ((x - distance) / 128.0).round
return true
end
return false
end
end
#==============================================================================
# ?? Game_Character (???????` 1)
#------------------------------------------------------------------------------
# ?@?L?????N?^?[???????N???X????B????N???X?? Game_Player ?N???X?? Game_Event
# ?N???X??X?[?p?[?N???X?????g?p????????B
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ?? ?t???[???X?V (???)
#--------------------------------------------------------------------------
def update_move
# ??????x?????}?b?v???W?n?????????????
distance = 2 ** @move_speed
if @x * 128 != @real_x and @y * 128 != @real_y and Game_Player::SLANT
distance /= Math.sqrt(2)
end
# ?_?????W???????W???????
if @y * 128 > @real_y
# ??????
@real_y = [@real_y + distance, @y * 128].min
end
# ?_?????W???????W???????
if @x * 128 < @real_x
# ??????
@real_x = [@real_x - distance, @x * 128].max
end
# ?_?????W???????W?????E???
if @x * 128 > @real_x
# ?E????
@real_x = [@real_x + distance, @x * 128].min
end
# ?_?????W???????W?????????
if @y * 128 < @real_y
# ??????
@real_y = [@real_y - distance, @y * 128].max
end
# ??????A?j???? ON ???
if @walk_anime
# ?A?j???J?E???g?? 1.5 ????
@anime_count += 1.5
# ??????A?j???? OFF ??A???~???A?j???? ON ???
elsif @step_anime
# ?A?j???J?E???g?? 1 ????
@anime_count += 1
end
end
end
#==============================================================================
# ?? Game_Event
#------------------------------------------------------------------------------
# ?@?C?x???g???????N???X????B??????????????C?x???g?y?[?W?????????A????????
# ?C?x???g???s????@?\????????????AGame_Map ?N???X???????g?p????????B
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ?? ?C?x???g?N??
#--------------------------------------------------------------------------
def start
# ???s???e??????????
if @list.size > 1
# $game_player.event ??0??????
if $game_player.event != 0
# ??????x?? $game_player.event ?????
$game_player.move_speed = $game_player.event
end
@starting = true
end
end
end