#---------------------------
if $isnpc
if passable?(@x, @y, 6) and passable?(@x+1, @y, 2) and passable?(@x, @y, 4) and passable?(@x-1, @y, 2)
move_left if direct == 4
move_right if direct == 6
if direct == 2 or direct == 8
randtra = rand(2)
randtra == 0 ? move_left : move_right
end
else
move_left if passable?(@x, @y, 4) and passable?(@x-1, @y, 2)
move_right if passable?(@x, @y, 6) and passable?(@x+1, @y, 2)
end
end
#---------------------------
# 接触事件的启动判定
check_event_trigger_touch(@x, @y+1)
end
end
#--------------------------------------------------------------------------
# ● 向左移动
# turn_enabled : 本场地位置更改许可标志
#--------------------------------------------------------------------------
def move_left(turn_enabled = true)
#---------------------------
direct = @direction
#---------------------------
# 面向左
if turn_enabled
turn_left
end
# 可以通行的情况下
if passable?(@x, @y, 4)
# 面向左
turn_left
# 更新坐标
@x -= 1
# 增加步数
increase_steps
# 不能通行的情况下
else
#---------------------------
if $isnpc
if passable?(@x, @y, 8) and passable?(@x, @y-1, 4) and passable?(@x, @y, 2) and passable?(@x, @y+1, 4)
move_up if direct == 8
move_down if direct == 2
if direct == 4 or direct == 6
randtra = rand(2)
randtra == 0 ? move_up : move_down
end
else
move_up if passable?(@x, @y, 8) and passable?(@x, @y-1, 4)
move_down if passable?(@x, @y, 2) and passable?(@x, @y+1, 4)
end
end
#---------------------------
# 接触事件的启动判定
check_event_trigger_touch(@x-1, @y)
end
end
#--------------------------------------------------------------------------
# ● 向右移动
# turn_enabled : 本场地位置更改许可标志
#--------------------------------------------------------------------------
def move_right(turn_enabled = true)
#---------------------------
direct = @direction
#---------------------------
# 面向右
if turn_enabled
turn_right
end
# 可以通行的场合
if passable?(@x, @y, 6)
# 面向右
turn_right
# 更新坐标
@x += 1
# 增加部数
increase_steps
# 不能通行的情况下
else
#---------------------------
if $isnpc
if passable?(@x, @y, 8) and passable?(@x, @y-1, 6) and passable?(@x, @y, 2) and passable?(@x, @y+1, 6)
move_up if direct == 8
move_down if direct == 2
if direct == 4 or direct == 6
randtra = rand(2)
randtra == 0 ? move_up : move_down
end
else
move_up if passable?(@x, @y, 8) and passable?(@x, @y-1, 6)
move_down if passable?(@x, @y, 2) and passable?(@x, @y+1, 6)
end
end
#---------------------------
# 接触事件的启动判定
check_event_trigger_touch(@x+1, @y)
end
end
#--------------------------------------------------------------------------
# ● 向上移动
# turn_enabled : 本场地位置更改许可标志
#--------------------------------------------------------------------------
def move_up(turn_enabled = true)
#---------------------------
direct = @direction
#---------------------------
# 面向上
if turn_enabled
turn_up
end
# 可以通行的情况下
if passable?(@x, @y, 8)
# 面向上
turn_up
# 更新坐标
@y -= 1
# 歩数増加
increase_steps
# 不能通行的情况下
else
#---------------------------
if $isnpc
if passable?(@x, @y, 6) and passable?(@x+1, @y, 8) and passable?(@x, @y, 4) and passable?(@x-1, @y, 8)
move_left if direct == 4
move_right if direct == 6
if direct == 2 or direct == 8
randtra = rand(2)
randtra == 0 ? move_left : move_right
end
else
move_left if passable?(@x, @y, 4) and passable?(@x-1, @y, 8)
move_right if passable?(@x, @y, 6) and passable?(@x+1, @y, 8)
end
end
#---------------------------
# 接触事件的启动判定
check_event_trigger_touch(@x, @y-1)
end
end
end