查看: 62|回复: 0

[转载发布] 在RMXP里面实现了gradient_fill_rect

[复制链接]
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月五日(秋) | 显示全部楼层 |阅读模式
    方法十分简陋,而且很难看
    效率嘛……不要管它好了
    RUBY 代码
    1. class Bitmap
    2.   def gradient_fill_rect(*args)
    3.     case args[0].size
    4.     when7
    5.       x, y, width, height, color1, color2, vertical = args[0]
    6.     when6
    7.       x, y, width, height, color1, color2, vertical = args[0] + [false]
    8.     when4
    9.       rect, color1, color2, vertical = args[0]
    10.     when3
    11.       rect, color1, color2 = args[0] + [false]
    12.     end
    13.     if rect != nil
    14.       x, y, width, height = rect.x, rect.y, rect.width, rect.height
    15.     end
    16.     if !vertical
    17.       for i in x..x+width
    18.         color_r = ((color1.red-color2.red)*(i-x).to_f/width + color1.red)
    19.         color_g = ((color1.green-color2.green)*(i-x).to_f/width + color1.green)
    20.         color_b = ((color1.blue-color2.blue)*(i-x).to_f/width + color1.blue)
    21.         color = Color.new(color_r, color_g, color_b)
    22.         fill_rect(i, y, 1, height, color)
    23.       end
    24.     else
    25.       for i in y..y+height
    26.         color_r = ((color1.red-color2.red)*(i-y).to_f/height + color1.red)
    27.         color_g = ((color1.green-color2.green)*(i-y).to_f/height + color1.green)
    28.         color_b = ((color1.blue-color2.blue)*(i-y).to_f/height + color1.blue)
    29.         color = Color.new(color_r, color_g, color_b)
    30.         fill_rect(x, i, width, 1, color)
    31.       end
    32.     end
    33.   end
    34. end
    复制代码

    效果自己测试一下就知道了
    还请大神们看看啊
                本帖来自P1论坛作者你欠抽吧,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=379255  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-10 18:45 , Processed in 0.047873 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表