查看: 2947|回复: 10

[已经解决] 計時器前顯示icon

[复制链接]
梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

发表于 2016-10-29 09:45:32 | 显示全部楼层 |阅读模式

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

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

×
有想過draw_icon什麼的,不過...計時器不是窗口吧{:2_254:}
2016/07/17 加入RPG製作,勿忘初衷!
梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2016-10-29 10:02:24 | 显示全部楼层
本帖最后由 RaidenInfinity 于 2016-10-29 10:23 编辑

加这个就可以在Sprite_Timer里面调用draw_icon了。

[pre lang="ruby"]
class Sprite_Timer < Sprite
  
  def draw_icon(icon_index, x, y, enabled = true)
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 160)
  end
  
end  
[/pre]

讲真,我感觉Window_Base里面的一些功能嵌进去Bitmap类可能会方便些。(draw_icon, draw_gauge之类的)
把contents换成self就得。

[pre lang="ruby"]
class Bitmap
  
  def draw_icon(icon_index, x, y, enabled = true)
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    self.blt(x, y, bitmap, rect, enabled ? 255 : 160)
  end
  
end  
[/pre]

评分

参与人数 2星屑 +265 梦石 +1 收起 理由
怪蜀黍 + 250 + 1 楼主认可的解答
QQ蚊子湯 + 15 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

 楼主| 发表于 2016-10-29 13:53:52 | 显示全部楼层
自己嘗試了一下,雖然可以調用但是沒有效果
應該是我姿勢有誤{:2_271:}

[pre lang="ruby"]class Sprite_Timer < Sprite
  def create_bitmap
    self.bitmap = Bitmap.new(96, 48)
    self.bitmap.font.size = 32
    self.bitmap.font.color.set(255, 255, 255)
    draw_icon(20,90,48)
  end[/pre]

点评

!!我發現我不小心把重繪的座標超過了 原來是這樣(眼神死)  发表于 2016-10-29 16:42
試了(20,0,0)也沒有出現{:4_91:}  发表于 2016-10-29 16:40
你先用draw_icon(20,0,0)看看效果怎样 再在位置上做调整呗  发表于 2016-10-29 14:38
啊不对。。。完全看不到了,y已经超出了bitmap的高度了……  发表于 2016-10-29 14:22
应该是有效果的,最右边6像素应该能看到点什么……x应该在bitmap范围以内嘛~~  发表于 2016-10-29 14:21
2016/07/17 加入RPG製作,勿忘初衷!
回复

使用道具 举报

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

 楼主| 发表于 2016-10-29 16:50:08 | 显示全部楼层
gsgfr.jpg
成功了! 非常感謝版主樣和蹭得累桑

題外話問一下重繪ICON會很多餘嗎?

点评

我決定改寫重繪了,感覺這樣內存少一點(心理上)  发表于 2016-10-29 22:14
重绘那里为了刷新数字把bitmap内容都清除了,硬要说的话,只把draw_icon放到redraw的最下面就好了,或者redraw的时候bitmap用.clear_rect而不要.clear。  发表于 2016-10-29 19:10
2016/07/17 加入RPG製作,勿忘初衷!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部