Project1
标题:
求助,如何通过替换图片来实现图片制血条的逐渐变色功能
[打印本页]
作者:
桐人
时间:
2014-7-9 20:44
标题:
求助,如何通过替换图片来实现图片制血条的逐渐变色功能
本帖最后由 桐人 于 2014-7-11 19:22 编辑
就是想制作一个随着血量的减少血条的颜色改变的一个功能。由于采用的是脚本制的图片血条,所以在网上查了半天也没有相关信息,我试了一下写条件分歧,不过没有成功。三种颜色的图片都放进去了,希望大家能够帮帮我,告诉我怎么才能通过脚本实现图片的替换。
无标题.png
(442.39 KB, 下载次数: 16)
下载附件
保存到相册
2014-7-9 20:42 上传
哦对了,还请问一下,这个血条能实现渐降效果吗?难吗?
Project4.rar
(211.53 KB, 下载次数: 25)
2014-7-11 19:21 上传
点击文件名下载附件
作者:
克莉丝
时间:
2014-7-10 10:49
本帖最后由 RyanBern 于 2014-7-10 12:07 编辑
将原来绿色的血条色相逆时针转过90°就能变成红色
用下面这个计算式达到目的
90 *Math.sqrt( actor.hp.to_f / actor.maxhp) - 90
因为如果是用一次函数的话血条变黄太快,换了根式
增加脚本见09行
def HP(actor,x,y,w=74,width=144)
# HP条
#HP最大值
@bitmap1 =Bitmap.new("Graphics/Pictures/HP")
[email protected]
*actor.hp/actor.maxhp
@src_rect1 = Rect.new( 0, 0, w1, @bitmap1.height)
self.contents.blt(x+119,y+11,@bitmap1,@src_rect1)
self.contents.hue_change 90 *Math.sqrt( actor.hp.to_f / actor.maxhp) - 90
@bitmap3 =Bitmap.new("Graphics/Pictures/MHP")
[email protected]
@src_rect3 = Rect.new( 0, 0, w3, @bitmap3.height)
self.contents.blt(x+38,y-22,@bitmap3,@src_rect3)
#HP
hp_x = x
flag = false
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
# 描绘 MaxHP
if flag
self.contents.font.color =normal_color
self.contents.draw_text(hp_x + 20, y+40, 12, 20, "/", 1)
self.contents.draw_number(hp_x + 35, y, actor.maxhp.to_s)
end
end
#SP条
def SP(actor,x,y,w=74,width=144)
#SP最大值
@bitmap4 =Bitmap.new("Graphics/Pictures/MSP")
[email protected]
@src_rect4 = Rect.new( 0, 0, w4, @bitmap4.height)
self.contents.blt(x+68,y,@bitmap4,@src_rect4)
#sp
@bitmap2 =Bitmap.new("Graphics/Pictures/SP")
[email protected]
*actor.sp/actor.maxsp
@src_rect2 = Rect.new( 0, 0, w2, @bitmap2.height)
self.contents.blt(x+68,y,@bitmap2,@src_rect2)
sp_x = x
flag = false
# 描绘 SP
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
# 描绘 MaxSP
if flag
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 20, y+41, 13, 20, "/", 1)
#把括号后的2去掉,中间的两个数字也去掉,
self.contents.draw_number(sp_x + 35, y, actor.maxsp.to_s)
#把draw_text改为draw_number就行了!!
end
end
复制代码
作者:
桐人
时间:
2014-7-10 16:12
谢谢您了,解决了!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1