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

Project1

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

[已经解决] 無法描繪槽值

[复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
跳转到指定楼层
1
发表于 2012-11-10 18:13:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
用了該腳本
很納悶為何在Window_Base中使用 self.contents.gradient_fill_rect 描繪槽值後
雖然測試時無報錯,但是顯示不出來

点评

哦,还是谢谢了  发表于 2012-11-10 20:16
求"真".出处.......  发表于 2012-11-10 20:15
测试工程发个...不然怎么改  发表于 2012-11-10 18:19

Lv1.梦旅人

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
2
 楼主| 发表于 2012-11-10 18:28:53 | 只看该作者
本帖最后由 serena718 于 2012-11-10 18:34 编辑

我把所用到的腳本中的某段截下來
  1. class Bitmap
  2.    
  3.     def gradient_fill_rect(x, y, width, height, color1, color2,vertical = false,opacity = 255)
  4.        #gradient_fill_rect(x坐标,y坐标,矩形宽,矩形高,颜色1,颜色2,横(竖)填充,不透明度)
  5.       vertical == false ? step = width - x : step = height - y;color = color1;color.alpha = opacity
  6.       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)
  7.       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
  8.       
  9.       if vertical == true
  10.          for i in y..height
  11.            self.fill_rect(x, y, width, 1, color)
  12.            y=y+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
  13.          end
  14.       else
  15.         for i in x..width
  16.            self.fill_rect(x, y, 1, height, color)
  17.            x=x+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
  18.         end
  19.     end
  20.    end

  21.     alias :bsucat_gradient_fill_rect :gradient_fill_rect
  22.     def gradient_fill_rect(x, y, width, height=false, color1 = 255, color2=nil,vertical = false,opacity = 255)
  23.       if x.instance_of?(Rect)
  24.         bsucat_gradient_fill_rect(x.x, x.y, x.width, x.height, y, width,height,color1)
  25.       else
  26.         bsucat_gradient_fill_rect(x, y, width, height, color1, color2,vertical = false,opacity = 255)
  27.       end
  28.     end
  29. end
复制代码
然後我在 Window_Base 中  def draw_actor_hp 的最下面新增了
  1.     color1 = Color.new(132,66,82,255)
  2.     color2 = Color.new(222,107,156,255)
  3.     w = width * actor.hp / [actor.maxhp,1].max
  4.     self.contents.gradient_fill_rect(x,y+35,w,height,color1,color2)
复制代码
開啟遊戲時雖無報錯,但選單狀態畫面的人物血條下,卻沒有顯示剛剛描繪的血條


因為工程有點大,所以用這種方式解釋下我遇到的問題...

点评

忘記把原腳本下面重定義的部分貼上了,現在補上...  发表于 2012-11-10 18:34
忘記補充,def draw_actor_hp我有預設height為6  发表于 2012-11-10 18:31

那啥…我以為用戶名只是通行碼…
所以我暱稱不是serena718哈,是月見斐夜
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
3
发表于 2012-11-10 19:10:27 | 只看该作者
本帖最后由 沙漠点灰 于 2012-11-10 19:13 编辑
serena718 发表于 2012-11-10 18:28
我把所用到的腳本中的某段截下來然後我在 Window_Base 中  def draw_actor_hp 的最下面新增了開啟遊戲時雖 ...


原作者的疏忽,或者lz没有复制最新的版本,代码出现bug了,修改如下:另求lz头像出处
RUBY 代码复制
  1. class Bitmap
  2.  
  3.     def gradient_fill_rect(x, y, width, height, color1, color2,vertical = false,opacity = 255)
  4.        #gradient_fill_rect(x坐标,y坐标,矩形宽,矩形高,颜色1,颜色2,横(竖)填充,不透明度)
  5.       vertical == false ? step = width - x : step = height - y;color = color1;color.alpha = opacity
  6.       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)
  7.       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
  8.       if vertical == true
  9.          for i in y..(y+height)
  10.            self.fill_rect(x, y, width, 1, color)
  11.            y=y+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
  12.          end
  13.       else
  14.         for i in x..(x+width)
  15.            self.fill_rect(x, y, 1, height, color)
  16.            x=x+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
  17.         end
  18.     end
  19.    end
  20.  
  21.     alias :bsucat_gradient_fill_rect :gradient_fill_rect
  22.     def gradient_fill_rect(x, y, width, height=false, color1 = 255, color2=nil,vertical = false,opacity = 255)
  23.       if x.instance_of?(Rect)
  24.         bsucat_gradient_fill_rect(x.x, x.y, x.width, x.height, y, width,height,color1)
  25.       else
  26.         bsucat_gradient_fill_rect(x, y, width, height, color1, color2,vertical = false,opacity = 255)
  27.       end
  28.     end
  29. end

点评

有找到他的P站 http://www.pixiv.net/member.php?id=104409  发表于 2012-11-10 20:18
谷哥結果 http://sayori.sabori.com/  发表于 2012-11-10 20:17
忘記繪師名了,好像是天朝繪師,據說是萌少女領域成員之一  发表于 2012-11-10 20:15
頭像原圖 http://ftp.66rpg.com/WEB_PLUS/attachment/album/201211/10/20135989rdna5drda822ju.jpg  发表于 2012-11-10 20:14
懂了,原來是原作者在描繪方法時沒有把原點再加上去……因為原範例內測試,x,y都為0,所以不會出現這種問題……  发表于 2012-11-10 20:13

评分

参与人数 1梦石 +2 收起 理由
hcm + 2 认可答案

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 03:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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