查看: 1644|回复: 5

[已经解决] 有关个状态栏的小问题,请教。

[复制链接]
梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
回帖
10960

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

发表于 2013-11-24 21:09:06 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 美丽晨露 于 2013-11-24 22:27 编辑

[pre lang="ruby" line="1"]class Sprite_States_Icon < Sprite
  def initialize(actor, x, y, view_area)
    super(view_area)
    @back = Sprite.new(view_area)
    @back.bitmap = Cache.system("Statebox.png")
    @back.opacity = 128
    @actor = actor
    @states = []
    self.bitmap = Bitmap.new(24 * 4, 24)
    self.x = x
    self.y = y
    @back.x = x
    @back.y = y
    @back.z = 200
    update
  end

  def update
    return if @states == @actor.states
    self.bitmap.clear
    count = 0
    @states = @actor.states
    for state in @actor.states
     draw_icon(state.icon_index, x + 24 * count, y)
      count += 1
      break if (24 * count > width - 24)
    end
  end
  
  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, 96)
    self.bitmap.blt(0, 0, bitmap, rect, enabled ? 255 : 128)
  end[/pre]

这个是某一个脚本内显示状态的脚本,可是我怎么改都只能显示一个状态。
要不就是改出排列是竖着的状态显示,而且显示的状态图标也不正确。
请问要怎么修改才能达到横着最大排列四个状态,而且是显示正确的哟。

评分

参与人数 1星屑 +20 收起 理由
Luciffer + 20 回馈

查看全部评分

大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

狂気の月兔

梦石
0
星屑
421
在线时间
1245 小时
注册时间
2009-4-7
回帖
866

贵宾

发表于 2013-11-24 22:02:28 | 显示全部楼层
  1. class Sprite_States_Icon < Sprite
  2.   def initialize(actor, x, y, view_area)
  3.     super(view_area)
  4.     @back = Sprite.new(view_area)
  5.     @back.bitmap = Cache.system("Statebox.png")
  6.     @back.opacity = 128
  7.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  8.     @states = []
  9.     self.bitmap = Bitmap.new(24 * 4, 24)
  10.     self.x = x
  11.     self.y = y
  12.     @back.x = x
  13.     @back.y = y
  14.     @back.z = 200
  15.     update
  16.   end

  17.   def update
  18.     return if @states == @actor.states
  19.     self.bitmap.clear
  20.     @states = @actor.states
  21.     x = 0
  22.     y = 0
  23.     @actor.states.each_with_index do |states, count|
  24.       draw_icon(states.icon_index, x + 24 * count, y)
  25.       break if (24 * count > width - 24)
  26.     end
  27.   end

  28.   def draw_icon(icon_index, x, y, enabled = true)
  29.     bitmap = Cache.system("Iconset")
  30.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 96)
  31.     self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 128)
  32.   end
复制代码
未测试

评分

参与人数 1星屑 +100 收起 理由
美丽晨露 + 100 认可答案

查看全部评分

回复

使用道具 举报

狂気の月兔

梦石
0
星屑
421
在线时间
1245 小时
注册时间
2009-4-7
回帖
866

贵宾

发表于 2013-11-24 21:29:03 | 显示全部楼层
怎么感觉你的代码

draw_icon(state.icon_index, x + 24 * count, y)

这句会出错?

点评

脚本执行没有出错的说······  发表于 2013-11-24 21:36
回复

使用道具 举报

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
回帖
10960

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

 楼主| 发表于 2013-11-24 22:13:52 | 显示全部楼层
铃仙·优昙华院·因幡 发表于 2013-11-24 22:02
未测试

谢谢,但是测试了没有发生改变的说
我附上工程,方便您修改测试吧
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复

使用道具 举报

狂気の月兔

梦石
0
星屑
421
在线时间
1245 小时
注册时间
2009-4-7
回帖
866

贵宾

发表于 2013-11-24 22:17:29 | 显示全部楼层
里面的 x y 自己改改

点评

感谢的说,已经自行修改完成。  发表于 2013-11-24 22:26
回复

使用道具 举报

狂気の月兔

梦石
0
星屑
421
在线时间
1245 小时
注册时间
2009-4-7
回帖
866

贵宾

发表于 2013-11-24 22:29:28 | 显示全部楼层
美丽晨露 发表于 2013-11-24 22:13
谢谢,但是测试了没有发生改变的说
我附上工程,方便您修改测试吧

捕获.JPG

替换掉我的脚本之后 , 一切正常的呀

点评

已经修复了,谢谢提醒。  发表于 2013-11-24 22:30

评分

参与人数 1梦石 +1 收起 理由
怪蜀黍 + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部