Project1

标题: 新人发布的第一个脚本——带皮肤的进度条 [打印本页]

作者: younggk    时间: 2008-9-30 19:55
标题: 新人发布的第一个脚本——带皮肤的进度条
经过了几天的摸索,RGSS总算是理出点头绪来了,想必很多人对游戏默认没有进度条感到怨念,我就是其中一个。所以本人改造脚本的第一刀就砍向这里了。

以下是脚本:


  1. #=================================================
  2. # ■ SkinedBar
  3. #------------------------------------------------------------------------------
  4. # 带有皮肤的进度条
  5. #   Young.G.K出品,转载请注明出处
  6. # 2008年9月29日
  7. #------------------------------------------------------------------------------

  8. class SkinedBar

  9. #--------------------------------------------------------------------------
  10. # ● 初始化对像
  11. #--------------------------------------------------------------------------
  12. def initialize(skinpath,barpath,barrect,minValue=0,maxValue = 100)
  13.     @skin = Bitmap.new(skinpath)
  14.     @bar = Bitmap.new(barpath)
  15.     @minValue = minValue
  16.     @maxValue = maxValue
  17.     @outBmp = Bitmap.new(@skin.width,@skin.height)
  18.     @barrect = barrect
  19.     @huemin = 0
  20.     @huemax = 0
  21. end

  22. #--------------------------------------------------------------------------
  23. # ● 设定色相
  24. #--------------------------------------------------------------------------
  25. def sethue(huemin,huemax)
  26.     @huemin = huemin
  27.     @huemax = huemax
  28. end
  29. #--------------------------------------------------------------------------
  30. # ● 输出
  31. #--------------------------------------------------------------------------
  32. def output(value)
  33.     rate = (value - @minValue + 0.0)/ ( @maxValue - @minValue )
  34.     @bar.hue_change ((rate - 1.0) * (@huemax - @huemin))
  35.     rect = Rect.new(@barrect.x, @barrect.y, @barrect.width * rate, @barrect.height)
  36.     @skin.stretch_blt(rect,@bar,@bar.rect)
  37.     return @skin
  38. end
  39. end
复制代码


使用方法:

barHP = SkinedBar.new("Graphics/Pictures/HPSkin.png", "Graphics/Pictures/HP.png",Rect.new(12,5,66,6),0,actor.maxhp)

#这条语句的作用是建立一个带皮肤的进度条,参数说明:"Graphics/Pictures/HPSkin.png"指的是进度条的皮肤;"Graphics/Pictures/HP.png"指的是血条本身对应的图片,注意:在本脚本里,这张图片是要被横向拉伸的;Rect.new(12,5,66,6)指构造一个矩形,这个矩形是血条在皮肤上的位置,坐标是相对于皮肤图片而言的;最后两个参数就是进度条所对应的最小值和最大值。
     

barHP.sethue(-145,0)

#这条语句的作用是设置最小值和最大值时的色相,参见魔兽争霸的可变色血条
     

bmpBar=barHP.output(actor.hp)

#这条语句用于将混合好的进度条图片输出,参数表示当前进度条所对应的值
     

第一次尝试RGSS脚本编写,有很多不足,希望高手指点。如有不解,直接留言就行了

效果截图:


皮肤只是简单的画了一下

点此处下载范例工程:
http://rpg.blue/upload_program/g ... ��条_103223827.rar
作者: 浩气青天    时间: 2008-9-30 20:20

没有截图看看吗?{/fd}
作者: 羽幻    时间: 2008-9-30 21:24
发个工程吧~``
对新人有好处的~````
作者: 越前リョーマ    时间: 2008-9-30 22:25
可以用事件脚本操作这个东西在任何位置吗?
作者: 仙剑乐逍遥    时间: 2008-9-30 22:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: younggk    时间: 2008-10-1 02:26
以下引用越前リョーマ于2008-9-30 14:25:40的发言:

可以用事件脚本操作这个东西在任何位置吗?

现在……应该是不可以吧
作者: younggk    时间: 2008-10-1 02:27
以下引用羽幻于2008-9-30 13:24:49的发言:

发个工程吧~``
对新人有好处的~````
以下引用仙剑乐逍遥于2008-9-30 14:27:49的发言:

恩,我也觉得发个工程比较好.....如果LZ不觉得辛苦的话  
以下引用浩气青天于2008-9-30 12:20:09的发言:


没有截图看看吗?

截图,工程都已经上传了
作者: ONEWateR    时间: 2008-10-1 02:28
黑暗好象这项技术
作者: swabwind    时间: 2008-10-1 04:39
恩~截图很华丽~
图片和字能再分开点会好看点...
作者: 越前リョーマ    时间: 2008-10-1 05:53
以下引用younggk于2008-9-30 18:26:14的发言:


以下引用越前リョーマ于2008-9-30 14:25:40的发言:

可以用事件脚本操作这个东西在任何位置吗?


现在……应该是不可以吧

= =
本来还以为这个脚本可以让我伟大的事件发扬光大了……
作者: 渎唻娴暀    时间: 2008-10-3 01:43
对于脚本修改 我只能佩服(因为俺不会{/ll}) !
作者: nozomiqx    时间: 2010-3-3 22:13
谢谢LZ分享~~~




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