| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 7 |
| 经验 | |
| 最后登录 | 2026-2-12 |
| 在线时间 | 1808 小时 |
- 梦石
- 0
- 星屑
- 687
- 在线时间
- 1808 小时
- 注册时间
- 2009-7-12
- 回帖
- 416
|
楼主 |
发表于 2012-11-10 18:28:53
|
显示全部楼层
本帖最后由 serena718 于 2012-11-10 18:34 编辑
我把所用到的腳本中的某段截下來- class Bitmap
-
- def gradient_fill_rect(x, y, width, height, color1, color2,vertical = false,opacity = 255)
- #gradient_fill_rect(x坐标,y坐标,矩形宽,矩形高,颜色1,颜色2,横(竖)填充,不透明度)
- vertical == false ? step = width - x : step = height - y;color = color1;color.alpha = opacity
- key_re = Math.sqrt(((color2.red - color1.red)/step)**2);key_gr = Math.sqrt(((color2.green - color1.green)/step)**2);key_bl = Math.sqrt(((color2.blue - color1.blue)/step)**2)
- color2.red-color1.red>0 ? key_re=key_re : key_re= -key_re;color2.green-color1.green>0 ? key_gr=key_gr : key_gr= -key_gr;color2.blue-color1.blue>0 ? key_bl=key_bl : key_bl= -key_bl
-
- if vertical == true
- for i in y..height
- self.fill_rect(x, y, width, 1, color)
- y=y+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
- end
- else
- for i in x..width
- self.fill_rect(x, y, 1, height, color)
- x=x+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
- end
- end
- end
- alias :bsucat_gradient_fill_rect :gradient_fill_rect
- def gradient_fill_rect(x, y, width, height=false, color1 = 255, color2=nil,vertical = false,opacity = 255)
- if x.instance_of?(Rect)
- bsucat_gradient_fill_rect(x.x, x.y, x.width, x.height, y, width,height,color1)
- else
- bsucat_gradient_fill_rect(x, y, width, height, color1, color2,vertical = false,opacity = 255)
- end
- end
- end
复制代码 然後我在 Window_Base 中 def draw_actor_hp 的最下面新增了- color1 = Color.new(132,66,82,255)
- color2 = Color.new(222,107,156,255)
- w = width * actor.hp / [actor.maxhp,1].max
- self.contents.gradient_fill_rect(x,y+35,w,height,color1,color2)
复制代码 開啟遊戲時雖無報錯,但選單狀態畫面的人物血條下,卻沒有顯示剛剛描繪的血條
因為工程有點大,所以用這種方式解釋下我遇到的問題... |
|