Project1

标题: 飘动标题怎么设置左右移动 [打印本页]

作者: 咚小黑    时间: 2011-10-25 07:07
标题: 飘动标题怎么设置左右移动
怎么让他两边对称移动啊(而不是至移动一个方向)
  1. #东方绯想天式飘动title
  2. class Window_Title < Window_Selectable
  3.   #--------------------------------------------------------------------------
  4.   # 定义常量
  5.   #--------------------------------------------------------------------------
  6.   AMP      = -50               #幅度,正数为向右,负数为向左
  7.   WAITTIME = 300               #等待时间,单位:帧
  8.   SPEED    = 300               #飘动速度,值越大越慢
  9.   OX       = [130,150,170] #初始横坐标
  10.   LOADDATA = 1                 #读档指令的位置,如果不使用无存档时变暗功能,把此项设为nil
  11.   WAIT_PER_PERIOD = false      #每次飘动完成后等待
  12.   #--------------------------------------------------------------------------
  13.   # 初始化
  14.   #--------------------------------------------------------------------------
  15.   def initialize(x = -16, y = 200)
  16.     bitmap = Cache.system("title_command")
  17.     @width = bitmap.width
  18.     @height= bitmap.height
  19.     super(x, y, Graphics.width - 2 * x, @height + 32)
  20.     self.opacity = 0
  21.     @index = 0
  22.     @column_max = 1
  23.     @item_max = OX.size
  24.     @height /= @item_max
  25.     @sprites = []
  26.     OX.size.times do |index|
  27.       sprite = Sprite.new
  28.       sprite.bitmap = bitmap
  29.       sprite.src_rect.set(0, @height * index, bitmap.width, @height)
  30.       sprite.y = y + @height * index + 16
  31.       sprite.x = OX[index]
  32.       @sprites.push(sprite)
  33.     end
  34.     if LOADDATA and Dir.glob('Save*.rvdata').empty? #读档按钮不可用时的颜色修正,可以根据图片的特点来修改以取得比较好的视觉效果
  35.       @sprites[LOADDATA].opacity = 128              #半透明
  36.       @sprites[LOADDATA].tone = Tone.new(0,0,0,255) #灰度化
  37.     end
  38.     @move_x = []
  39.     @wait_time = 0
  40.     @move_index = [0,0,0,0]
  41.     SPEED.times {|index|@move_x.push((Math.cos(Math::PI * index / SPEED * 2) * AMP).round - AMP)}
  42.     update
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # 更新
  46.   #--------------------------------------------------------------------------
  47.   def update
  48.     last_index = @index
  49.     super
  50.     if @index != last_index
  51.       @wait_time = 0
  52.       @stopping = true
  53.     end
  54.     if @move_index.all? {|index|index == 0}
  55.       if @wait_time > WAITTIME
  56.         sprite_move(0)
  57.         @wait_time = 0
  58.         @stopping = true if WAIT_PER_PERIOD
  59.       else
  60.         @stopping = false
  61.         @wait_time += 1
  62.       end
  63.     else
  64.       sprite_move(0) unless @stopping and @move_index[0] == 0
  65.       (1...OX.size).each {|index| sprite_move(index) if @move_index[index] != 0 or @move_index[index - 1] >= 30}
  66.     end
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # 释放(再定义)
  70.   #--------------------------------------------------------------------------
  71.   def dispose
  72.     @sprites.each do |sprite|
  73.       sprite.bitmap.dispose
  74.       sprite.dispose
  75.     end
  76.     super
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 获取项目要描画的矩形
  80.   #     index : 项目编号
  81.   #--------------------------------------------------------------------------
  82.   def item_rect(index)
  83.     return Rect.new(0,index * @height, self.contents.width, @height)
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # 精灵的移动
  87.   #--------------------------------------------------------------------------
  88.   def sprite_move(index)
  89.     @move_index[index] < SPEED - 1 ? @move_index[index] += 1 : @move_index[index] = 0
  90.     @sprites[index].ox = @move_x[@move_index[index]]
  91.   end
  92. end
复制代码
dsu_plus_rewardpost_czw
作者: 黑之翅膀    时间: 2011-10-25 07:10
本帖最后由 黑之翅膀 于 2011-10-25 07:12 编辑

把脚本41行的
  1. SPEED.times {|index|@move_x.push((Math.cos(Math::PI * index / SPEED * 2) * AMP).round - AMP)}

  2. #把- AMP去掉
复制代码


去掉...

我也不知道有什么好办法,不过却又能解决你的问题




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