设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2517|回复: 2
打印 上一主题 下一主题

[原创发布] 在RMXP里面实现了gradient_fill_rect

[复制链接]

Lv1.梦旅人

梦石
0
星屑
75
在线时间
241 小时
注册时间
2013-3-28
帖子
67
跳转到指定楼层
1
发表于 2015-5-19 19:12:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
方法十分简陋,而且很难看
效率嘛……不要管它好了
RUBY 代码复制
  1. class Bitmap
  2.  
  3.   def gradient_fill_rect(*args)
  4.     case args[0].size
  5.     when 7
  6.       x, y, width, height, color1, color2, vertical = args[0]
  7.     when 6
  8.       x, y, width, height, color1, color2, vertical = args[0] + [false]
  9.     when 4
  10.       rect, color1, color2, vertical = args[0]
  11.     when 3
  12.       rect, color1, color2 = args[0] + [false]
  13.     end
  14.     if rect != nil
  15.       x, y, width, height = rect.x, rect.y, rect.width, rect.height
  16.     end
  17.     if !vertical
  18.       for i in x..x+width
  19.         color_r = ((color1.red-color2.red)*(i-x).to_f/width + color1.red)
  20.         color_g = ((color1.green-color2.green)*(i-x).to_f/width + color1.green)
  21.         color_b = ((color1.blue-color2.blue)*(i-x).to_f/width + color1.blue)
  22.         color = Color.new(color_r, color_g, color_b)
  23.         fill_rect(i, y, 1, height, color)
  24.       end
  25.     else
  26.       for i in y..y+height
  27.         color_r = ((color1.red-color2.red)*(i-y).to_f/height + color1.red)
  28.         color_g = ((color1.green-color2.green)*(i-y).to_f/height + color1.green)
  29.         color_b = ((color1.blue-color2.blue)*(i-y).to_f/height + color1.blue)
  30.         color = Color.new(color_r, color_g, color_b)
  31.         fill_rect(x, i, width, 1, color)
  32.       end
  33.     end
  34.   end
  35.  
  36. end

效果自己测试一下就知道了
还请大神们看看啊

评分

参与人数 1星屑 +100 收起 理由
恐惧剑刃 + 100 精品文章

查看全部评分

Lv5.捕梦者

百合狂魔

梦石
15
星屑
7915
在线时间
2624 小时
注册时间
2011-12-16
帖子
1181

开拓者

2
发表于 2015-5-19 19:42:35 | 只看该作者
这是个啥
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
241 小时
注册时间
2013-3-28
帖子
67
3
 楼主| 发表于 2015-5-19 21:12:49 | 只看该作者
凝冰剑斩 发表于 2015-5-19 19:42
这是个啥

RGSS2的bitmap类里新增了一个gradient_fill_rect方法,可以用渐变色填充矩形,而RMXP所用的RGSS(1)没有这个方法。这个方法可以用来画血条之类的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-21 05:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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