设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1531|回复: 2
打印 上一主题 下一主题

[已经解决] 关于雪流星大大的滑动脚本的使用方法

[复制链接]

Lv2.观梦者

梦石
0
星屑
457
在线时间
1409 小时
注册时间
2010-9-23
帖子
557
跳转到指定楼层
1
发表于 2012-9-2 13:35:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 黑崎一护 于 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
end

Lv2.观梦者

永无止境的旅程

梦石
0
星屑
503
在线时间
1552 小时
注册时间
2012-6-19
帖子
1226

开拓者贵宾

2
发表于 2012-9-2 14:17:38 | 只看该作者
请附上脚本

点评

已补附件,求大神指点!=A=  发表于 2012-9-2 14:34
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1409
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

3
发表于 2012-9-2 16:02:28 | 只看该作者
其实说的很清楚了。。窗口其实代表的是这个窗口变量比如在菜单中的一段
  1. @gold_window = Window_Gold.new(0, 360)
复制代码
想要把@gold_window移动到0,0的位置就用@gold_window.move_to(0, 0)来移动到0,0的位置

点评

@gold_window.move_to(0, 0) = Window_Gold.new(0, 360) 就是这种样子么?  发表于 2012-9-2 16:21
谢谢您的热心帮助~!  发表于 2012-9-2 16:19
in和out的用法基本上相同  发表于 2012-9-2 16:04
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-23 14:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表