Project1

标题: 东方绯想天式飘动Title 2008-11-13更新 [打印本页]

作者: zh99998    时间: 2008-11-10 04:17
标题: 东方绯想天式飘动Title 2008-11-13更新
更新一个不需要改Scene_title的范例
http://rpg.blue/upload_program/d/zh99998_Project35_114419866.rar



  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,150] #初始横坐标
  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
复制代码

版权归八云紫所有

要顺便修改一下Scene_Title
(因为懒得改指令项,所以范例工程里点about会退出)

虽然每帧都要更新精灵的位置,但是在4个选项下能稳定的保持在60fps

http://rpg.blue/upload_program/d/zh99998_Project35_107120815.rar

[LINE]1,#dddddd[/LINE]
2008-11-12更新:
自动计算WIDTH和HEIGHT
增加对读档不可用的情况的一些处理,并且不需要额外的图
在update里加入了super(我当时NC了居然忘了super这种东西)
光标顶到窗口两边
对算法做了一些修正

2008-11-13更新:
做了一些细微的调整
作者: 光的圆周率    时间: 2008-11-10 04:23
很好很美很强大很有用很无情的收下了
作者: 殲滅天使·玲    时间: 2008-11-10 04:59
支持一下~~
FXT的TITLE飘动感确实很好.
但这个可能利用事件会简单一点,{/cy}
作者: zh99998    时间: 2008-11-10 05:01
每帧刷新的从不敢用事件做[LINE]1,#dddddd[/LINE]而且,脚本也很短
作者: 疯鸡瘫圣老贱    时间: 2008-11-10 05:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 英仙座    时间: 2008-11-10 05:57
简单得很的扭曲物- -
作者: 5693744    时间: 2008-11-10 08:25
简单,实用.
还挺漂亮.好东西.
作者: 做游戏的新手    时间: 2008-11-11 03:06
可以吧= =
作者: 沉影不器    时间: 2008-11-11 06:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: zh99998    时间: 2008-11-13 02:37
以下引用沉影不器于2008-11-10 22:03:13的发言:


以下引用zh99998于2008-11-9 20:17:30的发言:
版权归八云紫所有
[本贴由作者于 2008-11-9 20:18:09 最后编辑]


为何由您发布...

因为这个脚本是八云先写的,我来做一些修改
改完后八云下线了,就发到这里了{/gg}
作者: zh99998    时间: 2008-11-13 04:24
连帖一下

2008-11-12更新:
自动计算WIDTH和HEIGHT
增加对读档不可用的情况的一些处理,并且不需要额外的图
在update里加入了super(我当时NC了居然忘了super这种东西)
光标顶到窗口两边
对算法做了一些修正
作者: 木葬枫    时间: 2008-11-13 17:45
各种开头特效脚本让我越来越想换开头了……… [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: zh99998    时间: 2008-11-13 20:14
以下引用塑望于2008-11-12 22:34:00的发言:

可以把标题缩小点

换个小图即可,程序会自动根据图片来计算光标大小
作者: zh99998    时间: 2008-11-13 20:24
2008-11-13更新:
做了一些细微的调整(范例未更新)
作者: zh99998    时间: 2008-11-16 05:06
顶起被无视的脚本……
作者: 木葬枫    时间: 2008-11-16 07:33
话说zh“你”的此脚本要发布么?vip的归属?
作者: zh99998    时间: 2008-11-16 14:42
VIP归八云紫,如果能发布的话
作者: liuhsfyliu    时间: 2008-11-16 19:30
为什么About进入后自动退出,About的怎么设置
还有Exit Game按了没用啊
{/ll}{/ll}{/ll}
请求修改
作者: zh99998    时间: 2008-11-16 19:48
我似乎在楼顶说了,因为我没改Sctnt_Title的选项,所以按About会退出
作者: yuyi301    时间: 2009-2-7 00:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: zh99998    时间: 2009-2-7 15:10
如果你不需要About功能,就使用没有about的图片
然后把OX里的最后一项删掉
[LINE]1,#dddddd[/LINE]
楼顶更新一个范例
作者: yuyi301    时间: 2009-2-7 23:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 党马甲一号    时间: 2009-2-7 23:43
好东西
作者: zh99998    时间: 2009-3-7 03:31
你自己改一下WaitTime不就好了吗
(第7行)

后面的数字改成0就一开始就飘
作者: sillwind    时间: 2009-5-18 11:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 塑望    时间: 2009-6-12 08:00
可以把标题缩小点


作者: 巴哈姆特    时间: 2009-6-12 08:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: samchantak    时间: 2009-10-29 17:55
頂阿!好物要推一




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