Project1

标题: loading窗口 11-1更新 [打印本页]

作者: zh99998    时间: 2008-11-1 04:45
标题: loading窗口 11-1更新
  1. #loading窗口 by zh99998 2008-11-1
  2. class Loading < Window_Base
  3.   attr_accessor :num
  4.   attr_accessor :nth
  5.   def initialize(num, text = "Loading...", color = Color.new(255,255,255))
  6.     super(64,192,418,80)
  7.     if text.is_a?(Bitmap)
  8.       self.contents.blt((self.contents.width - text.width) / 2, 0, text, text.rect)
  9.     elsif text.is_a?(Array)
  10.       text[1].is_a?(Color) ? self.contents.font.color = text[1] : self.contents.font = text[1]
  11.       text = text[0]
  12.     end   
  13.     if text.is_a?(String)
  14.       rect = contents.text_size(text)
  15.       rect.width = self.contents.width
  16.       self.contents.draw_text(rect,text,1)
  17.     end
  18.     @num = num
  19.     @nth = 0
  20.     @color = color
  21.     Graphics.update
  22.   end
  23.   def next(nth = 1)
  24.     @nth += nth
  25.     rect = Rect.new(0, 24, self.contents.width * @nth / @num, 24)
  26.     if @color.is_a?(Color)
  27.       self.contents.fill_rect(rect, @color)
  28.     elsif @color.is_a?(Array)
  29.       self.contents.gradient_fill_rect(rect, @color[0], @color[1])
  30.     else
  31.       rect.y = 0
  32.       self.contents.blt(0, 24, @color, rect)
  33.     end
  34.     Graphics.update
  35.   end
  36. end
复制代码

$xxx = Loading.new(要执行的次数,文字,进度条颜色)
次数必须是整数
文字可以是String 或 [String, Color] 或 Bitmap
进度条颜色可以是Color 或 [Color1, Color2] 或 Bitmap
Bitmap高度要24,宽度386

然后加载一部分之后 $xxx.next
用完后搬起dispose把它砸掉
截图

  1. $loading = Loading.new(100,["loading...", Color.new(0,255,0)], Cache.parallax("mountains"))
复制代码

.next(3)就是相当于执行3次.next

用于需要长时间加载的东西

2008-11-1更新
支持用Bitmap或带颜色的字符串做文字
支持用Bitmap或颜色或双颜色做进度条
[LINE]1,#dddddd[/LINE]
下面是一个简易的版本,不需要华丽的用这个
  1. class Loading < Window_Base
  2.   def initialize(num, text = "Loading...")
  3.     super(64,192,418,80)
  4.     rect = contents.text_size(text)
  5.     rect.width = self.contents.width
  6.     self.contents.draw_text(rect,text,1)
  7.     @num = num
  8.     @nth = 0
  9.   end
  10.   def next(nth = 1)
  11.     @nth += nth
  12.     self.contents.fill_rect(Rect.new(0, 24, self.contents.width * @nth / @num, 24), Color.new(255,255,255))
  13.     Graphics.update
  14.   end
  15. end
复制代码


[LINE]1,#dddddd[/LINE]http://rpg.blue/viewthread.php?tid=108703&ntime=2008%2D11%2D1+21%3A15%3A01
与系统加载挂钩的一个范例
[LINE]1,#dddddd[/LINE]
可以发布乎?
如果可以,并且奖励在2VIP以上的话,请把其中的2VIP给八云紫,谢谢
作者: 越前リョーマ    时间: 2008-11-1 05:15
进度条能用图片么…… = =
作者: zh99998    时间: 2008-11-1 15:43
11-1更新
支持用Bitmap或带颜色的文本做文字
支持用Bitmap或单颜色或双颜色做进度条
作者: 亿万星辰    时间: 2008-11-1 16:16
这个进度条关键是要和真正的载入过程挂钩,空有一个条的话……
作者: 越前リョーマ    时间: 2008-11-1 16:58
以下引用亿万星辰于2008-11-1 8:16:26的发言:

这个进度条关键是要和真正的载入过程挂钩,空有一个条的话……

有些跟系统不完全有关,但又需要的地方还是有用的……比如挖矿什么的……
作者: zh99998    时间: 2008-11-1 17:29
可以真的与载入过程挂钩啊
在载入过程里加loading.next就可以了

我做这个就是为了我的一个很长时间的系统
作者: 亿万星辰    时间: 2008-11-1 21:00
与真正的载入系统挂钩的话,应该还得和载入文件的大小或者是数量形成一个对应的关系的
作者: zh99998    时间: 2008-11-1 21:09
如果你能拿出一个图片模糊匹配算法的话,我有一个跟系统挂钩的范例
就差个图片模糊匹配算法就完成了
作者: 亿万星辰    时间: 2008-11-2 03:52
这个和图片模糊匹配有什么关系?{/fd}
作者: 沉影不器    时间: 2008-11-2 04:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: zh99998    时间: 2008-11-2 04:37
跟加载进度无关请用kissye的脚本
我这个是用来嵌入进系统的
作者: 越前リョーマ    时间: 2008-11-2 04:44
以下引用沉影不器于2008-11-1 20:11:48的发言:


以下引用越前リョーマ于2008-11-1 8:58:14的发言:


以下引用亿万星辰于2008-11-1 8:16:26的发言:

这个进度条关键是要和真正的载入过程挂钩,空有一个条的话……


有些跟系统不完全有关,但又需要的地方还是有用的……比如挖矿什么的……

跟数据加载进度无关的话,不如显示动画更灵活...

这到是…… = = 从来没去想过……
作者: zh99998    时间: 2008-11-2 05:16
http://rpg.blue/viewthread.php?tid=108703&ntime=2008%2D11%2D1+21%3A15%3A01
与系统加载挂钩的一个范例
作者: kissye    时间: 2008-11-2 07:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: zh99998    时间: 2008-11-2 15:36
-0-我直接用了blt了,连起来也很像动画
[LINE]1,#dddddd[/LINE]虽说blt比较耗时间……但是……但是……Sprite完全不会{/gg}
作者: 雪流星    时间: 2008-11-2 17:50
可以用gredient_fill来加强效果{/hx}
作者: 八云紫    时间: 2008-11-2 18:28
其实,使用 Sprite 的话,到最后还是要用到 blt ,不过只需要使用一次即可,然后移动
Sprite [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: zh99998    时间: 2008-11-2 18:38
以下引用snstar2006于2008-11-2 9:50:23的发言:

可以用gredient_fill来加强效果

如果你在颜色那里指定两个颜色的话,你会发现……gredient_fill了
作者: zh99998    时间: 2008-11-3 05:07
可以发布乎?
如果可以,并且奖励在2VIP以上的话,请把其中的2VIP给八云紫,谢谢
作者: rivergo    时间: 2008-11-5 05:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 偶尔杀人越货    时间: 2008-11-7 00:46
以下引用越前リョーマ于2008-10-31 21:15:10的发言:

进度条能用图片么…… = =

能用,只要是条状的进度显示都能用图片(具体的问八云姐吧,我脚本白

作者: zh99998    时间: 2008-11-7 20:39
不知道直接Graphics.update 会不会影响游戏进程
作者: zh99998    时间: 2008-11-16 05:06
顶起我的被无视的脚本……
作者: 木葬枫    时间: 2009-1-3 23:40
发布完毕 VIP + (2+1)   应要求 八云紫 +2
发布地址:http://rpg.blue/web/htm/news1236.htm
作者: ONEWateR    时间: 2009-1-3 23:41
不错。

只是画面不怎么美观。  - -
作者: lwdx0822    时间: 2009-1-31 07:48
怎么 用嘛。。。。我是新手。。。那个大大给我教教~。。。。。
谢谢了·~~~~
OTZ~~~......
作者: PleasantSheep    时间: 2009-8-18 14:26
怎么用啊,我是个新手,有没有样板发下
作者: zh99998    时间: 2009-8-18 16:30
范例在楼顶

你不会脚本的话,这个窗口应该对你没什么用
作者: zh99998    时间: 2009-8-19 07:29
Loading画面最经典的还是要数生化初代,哆嗦一下走开
carolawyer 发表于 2009-8-18 21:43

嘛,少女祈祷中 多美
作者: zh99998    时间: 2009-8-19 12:21
东方啥时候出AVG了[line]1[/line]话说,咱水了,继续聊的话用短消息吧
作者: 不是马甲    时间: 2010-8-25 08:47
哦 不算挖坟    谁能给个工程?!
作者: 冰舞蝶恋    时间: 2010-9-13 11:12
白痴的问一下……到底是怎么用的啊……自己试过n次了……




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