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

Project1

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

[已经过期] 关于物品界面人物动态血条设置

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7495
在线时间
1152 小时
注册时间
2016-9-10
帖子
165

开拓者

跳转到指定楼层
1
发表于 2017-10-3 11:03:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 devil033 于 2017-10-3 11:06 编辑

如题,我想把物品使用界面中的角色血条,改成动态血条



但我只会写生成单个角色的动态血条
像上图这种,存在多个角色,还能上下拉动,并且还要与index一一对应的,不会写
以下是生成单个角色动态血条的方法
  def create_hp_meter
      @par_meter_image = Bitmap.new("Graphics/System/Par_Meter")
      @par_meter_cw = @par_meter_image.width / 3
      @par_meter_ch = @par_meter_image.height / 2
      @par_meter_flow = 0
      @par_meter_flow_max = @par_meter_image.width - @par_meter_cw      
      @hp_meter = Sprite.new
      @hp_meter.bitmap = Bitmap.new(@par_meter_cw,@par_meter_ch)
      @hp_meter.z = 500
      @hp_meter.x = 287
      @hp_meter.y = 200
      update_flow_hp
  end


  def update_flow_hp
      @hp_meter.bitmap.clear
      par_width = @par_meter_cw * @actor.hp / @actor.mhp rescue nil
      par_width = 0 if par_width == nil
      m_scr = Rect.new(@par_meter_flow,@par_meter_ch, par_width, @par_meter_ch)
      @hp_meter.bitmap.blt(0,0,@par_meter_image, m_scr)
      @par_meter_flow += 3
      @par_meter_flow = 0 if @par_meter_flow > @par_meter_flow_max
  end  


如果要如上要求实现多个角色动态血条功能,要怎么写?求大神指导,帮忙,谢谢。
顺便附上个新工程,血条图片已经放在Graphics/System/下
而这两句生成血条的方法放在Window_MenuActor类里面了

Project2.rar (1.42 MB, 下载次数: 122)




Lv3.寻梦者

梦石
0
星屑
1314
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

2
发表于 2017-10-3 18:47:55 | 只看该作者
能自己写某个角色的怎么会写不了通用的 其实就是多了几个参数罢了不过我确实没看懂你这写的是实现了什么功能也懒得下附件看hhh

其实想多个角色都能用就比如这样写
def create_hp_meter(actor, x, y)#do something
#balabala
#在用到hp值的时候用actor.hp
end

点评

这样所有角色的都出来了,但我的是动态的,不能消除位图,因为要一直update  发表于 2017-10-6 15:14
内置脚本是静态的,生成一个位图,然后位图用.blt放到个小框里面,位图就可以消除了,然后再生成这位位图,又放到其它小框里,再消除  发表于 2017-10-6 15:13
参考内置脚本里是怎么解决的。。。  发表于 2017-10-6 10:31
比如一开始显示队员0至队员4,当select选择到队员5时,显示的是队员1至队员5,当select选择到队员6时,显示的是队员2至队员6,不会对应起来  发表于 2017-10-3 22:55
一次把所有人都写出来我也会,但问题需要与index对应不会,因为Window_MenuActor的窗口一次显示四个角色,隐藏了其它的,需要与index选取才显示就不会  发表于 2017-10-3 22:53
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7495
在线时间
1152 小时
注册时间
2016-9-10
帖子
165

开拓者

3
 楼主| 发表于 2017-10-5 18:47:24 | 只看该作者
这个问题难度这么大吗,求个大神指导一波,感谢

点评

啊!!!看不懂吗?那简单的说,我要实现的就是把人物色血换成动态形式(效果和MOG_BOSS HP Meter一个效果),然后我做不出来。  发表于 2017-10-6 21:01
你的问题不在于难度而是。。你的描述实在没人看懂=。=我也只是随手提了下  发表于 2017-10-6 20:34
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7693
在线时间
1342 小时
注册时间
2012-6-6
帖子
345
4
发表于 2019-6-21 17:25:13 | 只看该作者
楼主还在吗,我也遇到跟你一样的问题,也只生成单个的动态,楼主解决了吗?可以说下么

点评

参考MOG,全部显示在一页,不要下拉菜单  发表于 2019-6-23 20:29
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7495
在线时间
1152 小时
注册时间
2016-9-10
帖子
165

开拓者

5
 楼主| 发表于 2019-6-23 20:27:33 | 只看该作者
参考MOG,全部显示在一页,不要下拉菜单
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7693
在线时间
1342 小时
注册时间
2012-6-6
帖子
345
6
发表于 2019-6-23 22:25:56 | 只看该作者
本帖最后由 流浪杰哥 于 2019-6-23 22:27 编辑
流浪杰哥 发表于 2019-6-21 17:25
楼主还在吗,我也遇到跟你一样的问题,也只生成单个的动态,楼主解决了吗?可以说下么 ...


我是从MOG的BOSS血条取出的一段动态血条的描绘方法,我把它放在Window_MenuStatus里面使用,只不过只能生成一个血条,暂时还没有解决这个问题…………方便的话楼主可以告诉我怎么修改吗?顺便一提,啥下拉菜单是什么呢……

这是我暂时使用的方式,因为图方便我直接放到Window_Base里面去了。
脚本如下:
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

点评

下拉菜单就下拉还有东西的菜单  发表于 2019-6-23 23:32
看 Scene_Menu  发表于 2019-6-23 23:31
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7693
在线时间
1342 小时
注册时间
2012-6-6
帖子
345
7
发表于 2019-6-24 11:10:55 | 只看该作者
流浪杰哥 发表于 2019-6-23 22:25
我是从MOG的BOSS血条取出的一段动态血条的描绘方法,我把它放在Window_MenuStatus里面使用,只不过只能生 ...

如果可以的话,可以提供一个简单的示例么,我实在摸不着头脑

点评

这玩意比较复杂(对我来说),我只会照搬模仿,整不出示例,难度太高  发表于 2019-6-24 23:35
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 18:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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