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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
跳转到指定楼层
1
发表于 2019-6-18 21:35:56 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

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


RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_Base
  4. #------------------------------------------------------------------------------
  5. #  游戏中所有窗口的父类
  6. #==============================================================================
  7.  
  8. class Window_Base < Window
  9.    def dispose
  10.     contents.dispose unless disposed?
  11.     super
  12.     dispose_meter#释放
  13.   end
  14.   def update
  15.     super
  16.     update_hp_meter#更新
  17.     update_tone
  18.     update_open if @opening
  19.     update_close if @closing
  20.   end
  21.  
  22.  
  23.   #绘制
  24.   def draw_actor_hp_meter(actor,x, y)
  25.       @meter_image = Cache.system("HP_Meter")
  26.       @meter_cw = @meter_image.width / 3
  27.       @meter_ch = @meter_image.height
  28.       @meter = Sprite.new
  29.       @meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  30.       @meter.z = 101
  31.       @meter.x = x
  32.       @meter.y = y
  33.       @hp_flow = 0
  34.       @hp_flow_max = @meter_cw * 2  
  35.       @np = actor.hp
  36.       @nnp = actor.mhp
  37.   end
  38.  
  39.  
  40.     def dispose_meter
  41.       return if @meter == nil
  42.       @meter.bitmap.dispose
  43.       @meter.dispose
  44.       @meter = nil
  45.     end
  46.  
  47.  
  48.     def update_hp_meter
  49.       return if @meter_image == nil
  50.       @meter.bitmap.clear
  51.       hp_width = @meter_cw * @np / @nnp
  52.       hp_src_rect = Rect.new(@hp_flow, 0,hp_width, @meter_ch)
  53.       @meter.bitmap.blt(0,0, @meter_image, hp_src_rect)
  54.       @hp_flow += 1
  55.       @hp_flow = 0 if @hp_flow >= @hp_flow_max
  56.     end
  57. end

从MOG的脚本中取出了一段关于动态血条的描绘方法,想在Window_MenuStatus中描画出动态血条来,血条是出来了,是动态的,但是只描画了一个角色的血条,也不知道我的方式哪里有问题,附件中有详细的脚本,还请大佬指点一二呗

动态血条.zip

1.63 MB, 下载次数: 130

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
14
 楼主| 发表于 2019-6-22 14:34:28 | 只看该作者
soulsaga 发表于 2019-6-21 22:39
def draw_actor_hp_meter(actor,x, y)
      @meter_image = Cache.system("HP_Meter")
      @meter_cw =  ...

讲真的,我有点想放弃了,唉…………
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
13
 楼主| 发表于 2019-6-22 14:32:43 | 只看该作者

似乎不可行……………………
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
12
 楼主| 发表于 2019-6-22 08:24:45 | 只看该作者
soulsaga 发表于 2019-6-21 22:39
def draw_actor_hp_meter(actor,x, y)
      @meter_image = Cache.system("HP_Meter")
      @meter_cw =  ...


似乎这一行报错了

点评

更新...  发表于 2019-6-22 10:49
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
11
发表于 2019-6-21 22:39:02 | 只看该作者
本帖最后由 soulsaga 于 2019-6-22 10:49 编辑

RUBY 代码复制
  1. def draw_actor_hp_meter(actor,x, y)
  2.       @meter_image = Cache.system("HP_Meter")
  3.       @meter_cw = @meter_image.width / 3
  4.       @meter_ch = @meter_image.height
  5.        @meter,np,nnp=[],[],[] if @meter.nil?
  6.       for i in 0...$game_party.members.size
  7.       @meter.push(Sprite.new)
  8.       @meter[i].bitmap = Bitmap.new(@meter_cw,@meter_ch)
  9.       @meter.z.push(101)
  10.       @meter.x.push(x)
  11.       @meter.y.push(y*i)
  12.       @hp_flow = 0
  13.       @hp_flow_max = @meter_cw * 2  
  14.       @np.push($game_party.members[i].hp)
  15.       @nnp.push($game_party.members[i].mhp)
  16.       end
  17.  
  18. def update_hp_meter
  19.       return if @meter_image == nil
  20.       @hp_width,@hp_src_rect=[],[] if @hp_width.nil?
  21.       for i in 0...$game_party.members.size
  22.       @meter[i].bitmap.clear
  23.       @hp_width.push(@meter_cw * @np[i] / @nnp[i])
  24.       @hp_src_rect[i] = Rect.new(@hp_flow[i], 0,@hp_width[i], @meter_ch)
  25.       @meter.bitmap[i].blt(0,0, @meter_image, @hp_src_rect[i])
  26.       end
  27.       @hp_flow += 1
  28.       @hp_flow = 0 if @hp_flow >= @hp_flow_max
  29.     end
  30.   end
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
10
 楼主| 发表于 2019-6-21 22:20:53 | 只看该作者
soulsaga 发表于 2019-6-21 20:19
不行..这个脚本是给一人用的..好难搞..

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

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
9
发表于 2019-6-21 20:19:11 | 只看该作者
本帖最后由 soulsaga 于 2019-6-21 20:30 编辑

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

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
8
 楼主| 发表于 2019-6-21 19:51:45 | 只看该作者
soulsaga 发表于 2019-6-21 17:52
这玩意原版只能显示一人么..


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

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
7
发表于 2019-6-21 17:52:19 | 只看该作者
这玩意原版只能显示一人么..
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
6
 楼主| 发表于 2019-6-21 15:53:42 | 只看该作者
暖帖,求大佬快快现身吧!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 22:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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