Project1

标题: 关于雪流星大大的滑动脚本的使用方法 [打印本页]

作者: 黑崎一护    时间: 2012-9-2 13:35
标题: 关于雪流星大大的滑动脚本的使用方法
本帖最后由 黑崎一护 于 2012-9-2 14:32 编辑

看不懂这个使用说明,请问如何使用该脚本调整原有窗口的滑动呢?比如主菜单。

论坛代码又开始插入不能了~一插入就一片白~待会补个附件 = =

附件: 新地图1.rar (266.53 KB, 下载次数: 0)

#==============================================================================
# ■ [VX] 窗口滑动
#    [VX] WindowSlide
#----------------------------------------------------------------------------
#    使用说明:
#    创建窗口之后,可以使用调整窗口的座标,并且将窗口滑动到指定位置。
#    可用于制作华丽菜单显示效果
#    * 窗口.in(方向[, 移动距离])
#       方向可以为 2(下), 4(左), 6(右), 8(上)
#       移动距离默认为 10
#       将窗口滑动至画面外。
#
#    * 窗口.out(方向[, 移动距离])
#       方向可以为 2(下), 4(左), 6(右), 8(上)
#       移动距离默认为 10
#       将窗口由画面外滑动至原位。
#
#    * 窗口.move_to(目标 X 座标, 目标 Y 座标[, 移动距离])
#       移动距离默认为 10
#       将窗口滑动至指定座标。
#
#----------------------------------------------------------------------------
#    更新作者: 雪流星(Snstar2006) DeathKing
#    许可协议: FSL
#    项目版本: 1.1.0131
#    引用网址:
#----------------------------------------------------------------------------
#    - 1.2.0131 By DeathKing
#      * 修正了move_to方法中的一个拼写错误导致的死循环;
#
#    - 1.1.0121 By 雪流星(Snstar2006)
#      * 修改算法,省去计算根号的步骤,稍微提高效率;
#
#    - 1.0.0121 By 雪流星(Snstar2006)
#      * 初版;
#==============================================================================
$fscript = {} if $fscript == nil
$fscript["WindowSlide"] = "1.2.0131"

#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中全部窗口的超级类。
#==============================================================================

class Window_Base < Window
  alias move_window_initialize initialize
  def initialize(x, y, width, height)
    move_window_initialize(x, y, width, height)
    @permanent_x = x
    @permanent_y = y
  end
  #--------------------------------------------------------------------------
  # ● 窗体划出
  #     direction :  方向
  #     step      : 移动的步长
  #--------------------------------------------------------------------------
  def in(direction, step=10)
    case direction
    when 2
      move_to(self.x, -self.height, step)
    when 4
      move_to(-self.width, self.y, step)
    when 6
      move_to(Graphics.width + self.width, self.y, step)
    when 8
      move_to(self.x, Graphics.height + self.height, step)
    end
    Graphics.wait(1)
  end
  #--------------------------------------------------------------------------
  # ● 窗体划回
  #     direction :  方向
  #     step      : 移动的步长
  #--------------------------------------------------------------------------
  def out(direction, step=10)
    case direction
    when 2, 8
      move_to(self.x, @permanent_y, step)
    when 4, 6
      move_to(@permanent_x, self.y, step)
    end
  end
  #--------------------------------------------------------------------------
  # ● 移动窗体
  #     dest_x    :  目的地x坐标
  #     dest_y    :  目的地y坐标
  #     move_step : 移动的步长
  #--------------------------------------------------------------------------
  def move_to(dest_x, dest_y, move_step=10)
    dx = dest_x - self.x
    dy = dest_y - self.y
    if dx == 0
      dy_step = move_step
      dx_step = 0
    elsif dy == 0
      dx_step = move_step
      dy_step = 0
    else
      max_distance_sq = dx**2+dy**2
      angle = Math.atan(dy.abs/dx.abs)
      dy_step = move_step*Math.sin(angle)
      dx_step = max_distance_sq - dy_step**2
    end
    while (self.x != dest_x || self.y != dest_y)
      if dx > 0
        self.x = [self.x + dx_step, dest_x].min
      else
        self.x = [self.x - dx_step, dest_x].max
      end
      if dy > 0
        self.y = [self.y + dy_step, dest_y].min
      else
        self.y = [self.y - dy_step, dest_y].max
      end
      Graphics.wait(1)
    end
  end
enddsu_plus_rewardpost_czw
作者: 丿梁丶小柒    时间: 2012-9-2 14:17
请附上脚本
作者: 铅笔描绘的思念    时间: 2012-9-2 16:02
其实说的很清楚了。。窗口其实代表的是这个窗口变量比如在菜单中的一段
  1. @gold_window = Window_Gold.new(0, 360)
复制代码
想要把@gold_window移动到0,0的位置就用@gold_window.move_to(0, 0)来移动到0,0的位置





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