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

Project1

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

[已经解决] 脚本显示图片色相问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3019
在线时间
652 小时
注册时间
2012-2-13
帖子
181
跳转到指定楼层
发表于 2019-4-18 16:55:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
100星屑
我在某窗口增加了多个图片显示

bitmap = RPG::Cache.picture("G/01")

bitmap = RPG::Cache.picture("G/02")

bitmap = RPG::Cache.picture("G/03")

虽然可以在显示第一张图片的下面这样来更改色相
bitmap = RPG::Cache.picture("G/01")
bitmap.hue_change(100)
但是色相无法固定

请问如何才能让色相固定,比如我想要"G/01"图片变成  0,255,0,100(这样就是绿色,而且颜色也淡一点)
在不影响02 03图片的情况下改变01图片的色相??

小白继续请教各位大神帮忙

最佳答案

查看完整内容

测试了下, 你把 bitmap.hue_change(100) 这句写到UPDATE里就会变, 每描绘一次, 它就会以上次的色相基础上再次转换色相 不要把它放UPDATE就没事了 这样写,update的时候 不会改变色相 这样写每描绘一次就会在上次的基础上转变色相 非要在UPDATE里 加载 bitmap, 就换别的文件夹吧, bitmap = RPG::Cache.battler(name,hue) 这样就随便你刷新了 ...

Lv5.捕梦者

梦石
0
星屑
36367
在线时间
10781 小时
注册时间
2009-3-15
帖子
4813
7
发表于 2019-4-18 18:43:38 | 只看该作者
本帖最后由 soulsaga 于 2019-4-18 18:45 编辑

a = Sprite.new
a.bitmap = RPG::Cache.picture("G/01")
a.tone = Tone.new(R, G, B, 255)
这样才能用
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33409
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

6
发表于 2019-4-18 18:37:55 | 只看该作者
更改色相用得很少,没注意到会不会变,但印象中貌似不会自动改变吧!
要么有个笨办法,读取图片改变色相后,把它立马 blt 到一张空白的 Bitmap 上试试。
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36367
在线时间
10781 小时
注册时间
2009-3-15
帖子
4813
5
发表于 2019-4-18 18:12:13 | 只看该作者
本帖最后由 soulsaga 于 2019-4-18 18:18 编辑

是想要像事件更改色调那样做吗?
bitmap.tone = Tone.new(R, G, B, 255)

点评

Tone.new是用在精灵上的..位图不行..  发表于 2019-4-18 18:41
RGB独立再赋予数值吗?例如 R = 100 G=0  发表于 2019-4-18 18:20
大概是这个意思,但是bitmap.tone = Tone.new(0, 0, 0, 255) 这个语法似乎不对  发表于 2019-4-18 18:18
你早说嘛..要着色的那样的效果..还有色相跟色调不是同一样的..之前我找大神教我给殘影着色这方法看看行不行得通?  发表于 2019-4-18 18:17
是的,固定一种色相,因为hue每次刷新都会变...能像PS里的“着色”也行,只要能固定颜色就好了,虽然可以直接PS,但是我这么做也有原因的  发表于 2019-4-18 18:16
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41646
在线时间
7596 小时
注册时间
2009-7-6
帖子
13505

开拓者贵宾

4
发表于 2019-4-18 17:45:52 | 只看该作者
直接使用Cache.load_bitmap就可以了

点评

具体怎么做?求管理帮帮忙 T T  发表于 2019-4-18 18:07
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
3
发表于 2019-4-18 17:40:03 | 只看该作者
那就别放在 picture 文件夹里嘛

RPG::Cache.battler, RPG::Cache.character, RPG::Cache.fog, RPG::Cache.panorama 都可以直接填色相参数


点评

我用的是bitmap.hue_change(100) 这样来变色,请问我该怎么写?求教  发表于 2019-4-18 18:17
每次刷新都会变色? 那一定是你的写法问题, 你见过行走图,战斗图改色相后会一直变色么? 人家可是每帧刷新的哦  发表于 2019-4-18 18:15
那么问题又回到原点了,hue只能0-360 而且还不是固定颜色,每次刷新都会变色,能否固定?  发表于 2019-4-18 18:12
bitmap = RPG::Cache.battler(name,hue)  发表于 2019-4-18 18:09
如果使用RPG::Cache.battler 那该如何更改色相  发表于 2019-4-18 18:07
回复

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2019-4-18 17:13:55 | 只看该作者
印象中picture方法的第二个参数就是色相,直接picture(path, hue)试试看

点评

不行,RPG::Cache我基本看完了,里面只有hue可以用,但可惜无法固定色相  发表于 2019-4-18 17:16
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
1
发表于 2019-4-18 16:55:20 | 只看该作者
本帖最后由 灯笼菜刀王 于 2019-4-18 19:07 编辑

测试了下,  你把  bitmap.hue_change(100)  这句写到UPDATE里就会变, 每描绘一次, 它就会以上次的色相基础上再次转换色相

不要把它放UPDATE就没事了

这样写,update的时候 不会改变色相
  1. class Win_a < Window_Base
  2.   def initialize
  3.     super(0, 0, 640, 480)
  4.     self.contents = Bitmap.new(width - 32, height - 32)
  5.     @bitmap = RPG::Cache.picture("G/01")
  6.     @bitmap.hue_change(100)
  7.     self.contents.blt(0, 0, @bitmap, Rect.new(0, 0, 640, 480))
  8.   end
  9.   def update
  10.     if Input.trigger?(Input::UP)
  11.       self.contents.clear
  12.       self.contents.blt(0, -240, @bitmap, Rect.new(0, 0, 640, 480))
  13.     end
  14.     if Input.trigger?(Input::DOWN)
  15.       self.contents.clear
  16.       self.contents.blt(0, 240, @bitmap, Rect.new(0, 0, 640, 480))
  17.     end
  18.   end
  19. end
复制代码


这样写每描绘一次就会在上次的基础上转变色相
  1. class Win_a < Window_Base
  2.   def initialize
  3.     super(0, 0, 640, 480)
  4.     self.contents = Bitmap.new(width - 32, height - 32)
  5.     bitmap = RPG::Cache.picture("G/01")
  6.     bitmap.hue_change(100)
  7.     self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 640, 480))
  8.   end
  9.   def update
  10.     if Input.trigger?(Input::UP)
  11.       self.contents.clear
  12.       bitmap = RPG::Cache.picture("G/01")
  13.       bitmap.hue_change(100)
  14.       self.contents.blt(0, -240, bitmap, Rect.new(0, 0, 640, 480))
  15.     end
  16.     if Input.trigger?(Input::DOWN)
  17.       self.contents.clear
  18.       bitmap = RPG::Cache.picture("G/01")
  19.       bitmap.hue_change(100)
  20.       self.contents.blt(0, 240, bitmap, Rect.new(0, 0, 640, 480))
  21.     end
  22.   end
  23. end
复制代码


非要在UPDATE里 加载 bitmap, 就换别的文件夹吧, bitmap = RPG::Cache.battler(name,hue) 这样就随便你刷新了

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-10 19:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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