在RMXP里面实现了gradient_fill_rect
方法十分简陋,而且很难看效率嘛……不要管它好了
RUBY 代码
class Bitmap
def gradient_fill_rect(*args)
case args.size
when7
x, y, width, height, color1, color2, vertical = args
when6
x, y, width, height, color1, color2, vertical = args +
when4
rect, color1, color2, vertical = args
when3
rect, color1, color2 = args +
end
if rect != nil
x, y, width, height = rect.x, rect.y, rect.width, rect.height
end
if !vertical
for i in x..x+width
color_r = ((color1.red-color2.red)*(i-x).to_f/width + color1.red)
color_g = ((color1.green-color2.green)*(i-x).to_f/width + color1.green)
color_b = ((color1.blue-color2.blue)*(i-x).to_f/width + color1.blue)
color = Color.new(color_r, color_g, color_b)
fill_rect(i, y, 1, height, color)
end
else
for i in y..y+height
color_r = ((color1.red-color2.red)*(i-y).to_f/height + color1.red)
color_g = ((color1.green-color2.green)*(i-y).to_f/height + color1.green)
color_b = ((color1.blue-color2.blue)*(i-y).to_f/height + color1.blue)
color = Color.new(color_r, color_g, color_b)
fill_rect(x, i, width, 1, color)
end
end
end
end
效果自己测试一下就知道了
还请大神们看看啊
本帖来自P1论坛作者你欠抽吧,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=379255若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]