好像不用那么麻烦吧。。直接把VX的方法复制过来。。Shift加速
class Game_Player < Game_Character def update_move # 移动速度转换为地图坐标系的移动距离 distance = 2 ** @move_speed distance *= 2 if Input.press?(Input::SHIFT) # 理论坐标在实际坐标下方的情况下 if @y * 128 > @real_y # 向下移动 @real_y = [@real_y + distance, @y * 128].min end # 理论坐标在实际坐标左方的情况下 if @x * 128 < @real_x # 向左移动 @real_x = [@real_x - distance, @x * 128].max end # 理论坐标在实际坐标右方的情况下 if @x * 128 > @real_x # 向右移动 @real_x = [@real_x + distance, @x * 128].min end # 理论坐标在实际坐标上方的情况下 if @y * 128 < @real_y # 向上移动 @real_y = [@real_y - distance, @y * 128].max end # 移动时动画为 ON 的情况下 if @walk_anime # 动画计数增加 1.5 @anime_count += 1.5 # 移动时动画为 OFF、停止时动画为 ON 的情况下 elsif @step_anime # 动画计数增加 1 @anime_count += 1 end end end
class Game_Player < Game_Character
def update_move
# 移动速度转换为地图坐标系的移动距离
distance = 2 ** @move_speed
distance *= 2 if Input.press?(Input::SHIFT)
# 理论坐标在实际坐标下方的情况下
if @y * 128 > @real_y
# 向下移动
@real_y = [@real_y + distance, @y * 128].min
end
# 理论坐标在实际坐标左方的情况下
if @x * 128 < @real_x
# 向左移动
@real_x = [@real_x - distance, @x * 128].max
end
# 理论坐标在实际坐标右方的情况下
if @x * 128 > @real_x
# 向右移动
@real_x = [@real_x + distance, @x * 128].min
end
# 理论坐标在实际坐标上方的情况下
if @y * 128 < @real_y
# 向上移动
@real_y = [@real_y - distance, @y * 128].max
end
# 移动时动画为 ON 的情况下
if @walk_anime
# 动画计数增加 1.5
@anime_count += 1.5
# 移动时动画为 OFF、停止时动画为 ON 的情况下
elsif @step_anime
# 动画计数增加 1
@anime_count += 1
end
end
end
|