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

Project1

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

[RMVX发布] 东方绯想天式飘动Title 2008-11-13更新

 关闭 [复制链接]

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
539
在线时间
1238 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

跳转到指定楼层
1
发表于 2008-11-10 04:17:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
更新一个不需要改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



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

2008-11-13更新:
做了一些细微的调整
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上

Lv1.梦旅人

梦石
0
星屑
116
在线时间
192 小时
注册时间
2008-5-11
帖子
547
2
发表于 2008-11-10 04:23:09 | 只看该作者
很好很美很强大很有用很无情的收下了
9
回复 支持 反对

使用道具 举报

Lv1.梦旅人

今、空を見上げ

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-8-11
帖子
2022
3
发表于 2008-11-10 04:59:31 | 只看该作者
支持一下~~
FXT的TITLE飘动感确实很好.
但这个可能利用事件会简单一点,{/cy}
做任何事,都不要为自己找借口。任何事都不存在困难的借口。你只有3个字“做得到”
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
539
在线时间
1238 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

4
 楼主| 发表于 2008-11-10 05:01:45 | 只看该作者
每帧刷新的从不敢用事件做
而且,脚本也很短
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

6r最强害虫!

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-11-9
帖子
950
5
发表于 2008-11-10 05:41:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彼女たちの流儀

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-30
帖子
519

第1届Title华丽大赛季军

6
发表于 2008-11-10 05:57:22 | 只看该作者
简单得很的扭曲物- -
http://rpg.blue/upload_program/d/英仙座_鸟羽莉2_113517825.png[color=#D52B4D]これから、さよなら。[url=http://hi.baidu.com/lovemaeve]http://hi.baidu.com/lovemaeve[/url][/color]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
6 小时
注册时间
2007-12-18
帖子
214
7
发表于 2008-11-10 08:25:50 | 只看该作者
简单,实用.
还挺漂亮.好东西.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2007-12-16
帖子
3454
8
发表于 2008-11-11 03:06:08 | 只看该作者
可以吧= =
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

9
发表于 2008-11-11 06:03:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
539
在线时间
1238 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

10
 楼主| 发表于 2008-11-13 02:37:45 | 只看该作者
以下引用沉影不器于2008-11-10 22:03:13的发言:


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


为何由您发布...

因为这个脚本是八云先写的,我来做一些修改
改完后八云下线了,就发到这里了{/gg}
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 06:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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