Project1

标题: 脚本显示图片色相问题 [打印本页]

作者: 大放异彩    时间: 2019-4-18 16:55
标题: 脚本显示图片色相问题
我在某窗口增加了多个图片显示

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图片的色相??

小白继续请教各位大神帮忙
作者: 灯笼菜刀王    时间: 2019-4-18 16:55
本帖最后由 灯笼菜刀王 于 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) 这样就随便你刷新了


作者: guoxiaomi    时间: 2019-4-18 17:13
印象中picture方法的第二个参数就是色相,直接picture(path, hue)试试看
作者: 灯笼菜刀王    时间: 2019-4-18 17:40
那就别放在 picture 文件夹里嘛

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



作者: fux2    时间: 2019-4-18 17:45
直接使用Cache.load_bitmap就可以了
作者: soulsaga    时间: 2019-4-18 18:12
本帖最后由 soulsaga 于 2019-4-18 18:18 编辑

是想要像事件更改色调那样做吗?
bitmap.tone = Tone.new(R, G, B, 255)
作者: 芯☆淡茹水    时间: 2019-4-18 18:37
更改色相用得很少,没注意到会不会变,但印象中貌似不会自动改变吧!
要么有个笨办法,读取图片改变色相后,把它立马 blt 到一张空白的 Bitmap 上试试。
作者: soulsaga    时间: 2019-4-18 18:43
本帖最后由 soulsaga 于 2019-4-18 18:45 编辑

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




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1