查看: 7970|回复: 15

[已经过期] MOG动态血条的描绘方法

[复制链接]
梦石
0
星屑
9813
在线时间
1647 小时
注册时间
2012-6-6
回帖
306
发表于 2019-6-18 21:35:56 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 流浪杰哥 于 2019-6-18 21:40 编辑

AXTIMBYC2@YU30]66CFEI.png (HF}KXTB@D0TR6M$XBJ09NH.png
[pre lang="ruby"]#encoding:utf-8
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中所有窗口的父类
#==============================================================================

class Window_Base < Window
   def dispose
    contents.dispose unless disposed?
    super
    dispose_meter#释放
  end
  def update
    super
    update_hp_meter#更新
    update_tone
    update_open if @opening
    update_close if @closing
  end
  
  
  #绘制
  def draw_actor_hp_meter(actor,x, y)
      @meter_image = Cache.system("HP_Meter")
      @meter_cw = @meter_image.width / 3
      @meter_ch = @meter_image.height
      @meter = Sprite.new
      @meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
      @meter.z = 101
      @meter.x = x
      @meter.y = y
      @hp_flow = 0
      @hp_flow_max = @meter_cw * 2  
      @np = actor.hp
      @nnp = actor.mhp
  end


    def dispose_meter
      return if @meter == nil
      @meter.bitmap.dispose
      @meter.dispose
      @meter = nil
    end


    def update_hp_meter
      return if @meter_image == nil
      @meter.bitmap.clear
      hp_width = @meter_cw * @np / @nnp
      hp_src_rect = Rect.new(@hp_flow, 0,hp_width, @meter_ch)
      @meter.bitmap.blt(0,0, @meter_image, hp_src_rect)
      @hp_flow += 1
      @hp_flow = 0 if @hp_flow >= @hp_flow_max
    end
end[/pre]
从MOG的脚本中取出了一段关于动态血条的描绘方法,想在Window_MenuStatus中描画出动态血条来,血条是出来了,是动态的,但是只描画了一个角色的血条,也不知道我的方式哪里有问题,附件中有详细的脚本,还请大佬指点一二呗

动态血条.zip

1.63 MB, 下载次数: 131

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-6-18 21:50:43 | 显示全部楼层
因为你所有血条的精灵都叫@meter,后面生成的就覆盖了前面的。

如果追求方便,你可以新建@meters作为数组,每次draw_meter往数组里增加一个元素
然后在更新和释放的地方用@meters.each……来就好。
用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
9813
在线时间
1647 小时
注册时间
2012-6-6
回帖
306
 楼主| 发表于 2019-6-18 22:18:24 | 显示全部楼层
KB.Driver 发表于 2019-6-18 21:50
因为你所有血条的精灵都叫@meter,后面生成的就覆盖了前面的。

如果追求方便,你可以新建@meters作为数组 ...

我看我就只能伸手了么么哒
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-18 23:37:18 | 显示全部楼层
[pre lang="ruby"]draw_actor_hp_meter(actor,rect.x+100, rect.y*index)[/pre]

点评

这个没有解决他后画的精灵覆盖前面精灵的问题  发表于 2019-6-18 23:55
回复

使用道具 举报

梦石
0
星屑
9813
在线时间
1647 小时
注册时间
2012-6-6
回帖
306
 楼主| 发表于 2019-6-19 08:21:01 | 显示全部楼层
soulsaga 发表于 2019-6-18 23:37
draw_actor_hp_meter(actor,rect.x+100, rect.y*index)[/pre]

看样子似乎很麻烦的说,目前还是没能解决
回复

使用道具 举报

梦石
0
星屑
9813
在线时间
1647 小时
注册时间
2012-6-6
回帖
306
 楼主| 发表于 2019-6-21 15:53:42 | 显示全部楼层
暖帖,求大佬快快现身吧!
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-21 17:52:19 | 显示全部楼层
这玩意原版只能显示一人么..
回复

使用道具 举报

梦石
0
星屑
9813
在线时间
1647 小时
注册时间
2012-6-6
回帖
306
 楼主| 发表于 2019-6-21 19:51:45 | 显示全部楼层
soulsaga 发表于 2019-6-21 17:52
这玩意原版只能显示一人么..


的确是只显示一个人,因为生成动态血条的方法是从MOG的BOSS血条里面取出来的一小段,我把它放到Window_Base里面,是为了方便在其他窗口下调用
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-21 20:19:11 | 显示全部楼层
本帖最后由 soulsaga 于 2019-6-21 20:30 编辑

不行..这个脚本是给一人用的..好难搞..
回复

使用道具 举报

梦石
0
星屑
9813
在线时间
1647 小时
注册时间
2012-6-6
回帖
306
 楼主| 发表于 2019-6-21 22:20:53 | 显示全部楼层
soulsaga 发表于 2019-6-21 20:19
不行..这个脚本是给一人用的..好难搞..

就像2楼大佬说的,后面生成的精灵覆盖了前面的,但是具体要怎么改我也不知道,脚本我是不懂,我只知道从原始脚本复制出生成动态血条的方法。。。。。。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部