じ☆ve冰风 发表于 2024-4-19 22:45:01

在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]
查看完整版本: 在RMXP里面实现了gradient_fill_rect