Project1

标题: 怎么做一个VA冰路面图块的脚本,求人指教! [打印本页]

作者: zsy120989    时间: 2017-10-27 11:13
标题: 怎么做一个VA冰路面图块的脚本,求人指教!
本帖最后由 RaidenInfinity 于 2017-10-28 09:54 编辑

#==============================================================================
# ★ 冰面滑动
#------------------------------------------------------------------------------
# 作者:protosssonny
# 转载请保留脚本来源:www.66RPG.com
#--------------------------------------------------------------------------
# 请在下面设定冰面图块的ID
  Ice_Tile = [1537,1538,1539]

# 可以在事件脚本中输入以下命令来查看当前角色脚下的图块ID,以便确定冰面图块:
#     $game_map.show_tile_id
#==============================================================================

#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
#  处理地图的类。包含卷动以及可以通行的判断功能。本类的实例请参考 $game_map 。
#==============================================================================

class Game_Map  
  #--------------------------------------------------------------------------
  # ● 判断冰面
  #     x : X 坐标
  #     y : Y 坐标
  #--------------------------------------------------------------------------
  def ice?(x, y)
    return false unless valid?(x, y)
    return true if Ice_Tile.include?($game_map.data[x, y, 0])
  end  
  #--------------------------------------------------------------------------
  # ● 显示当前图块ID (测试用的脚本命令)
  #--------------------------------------------------------------------------
  def show_tile_id
    p $game_map.data[$game_player.x, $game_player.y, 0]
  end  
end  
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#  处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    last_real_x = @real_x
    last_real_y = @real_y
    last_moving = moving?
    if $game_map.ice?(@x, @y) # 在冰上移动
      @walk_anime = false     # 固定朝向
      move_on_ice
    else
      @walk_anime = true      # 解除固定朝向
    end  
    move_by_input
    super
    update_scroll(last_real_x, last_real_y)
    update_vehicle
    update_nonmoving(last_moving)
  end
  #--------------------------------------------------------------------------
  # ● 滑行移动处理
  #--------------------------------------------------------------------------
  def move_on_ice
    return unless movable?
    return if $game_map.interpreter.running?
    return if @move_failed
    case self.direction
    when 2
      move_down
    when 4
      move_left
    when 6
      move_right
    when 8
      move_up
    end
  end
  #--------------------------------------------------------------------------
  # ● 判断是否奔跑中
  #--------------------------------------------------------------------------
  def dash?
    return false if @move_route_forcing
    return false if $game_map.disable_dash?
    return false if in_vehicle?
    return Input.press?(Input::A) unless $game_map.ice?(@x, @y) #加本行即可
  end
end  

这个是VX的脚本,在VA里使用后出BUG,本人对脚本不是很懂,望高人指教,谢谢!


作者: 赤炎    时间: 2017-10-28 01:34
同脚本盲,不过我找到事件范例...,楼主可以参考看看...
https://rpg.blue/forum.php?mod=viewthread&tid=342896
作者: zsy120989    时间: 2018-7-21 16:09
赤炎 发表于 2017-10-28 01:34
同脚本盲,不过我找到事件范例...,楼主可以参考看看...
https://rpg.blue/forum.php?mod=viewthread&tid=3 ...

谢谢了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1