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

Project1

 找回密码
 注册会员
搜索
查看: 3338|回复: 26

[已经解决] 关于血条和减血的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2841
在线时间
640 小时
注册时间
2012-2-13
帖子
178
发表于 2019-4-22 08:17:30 | 显示全部楼层 |阅读模式
70星屑
本帖最后由 大放异彩 于 2019-4-22 22:03 编辑

已经自己解决 版主可对本帖进行分类
QQ截图20190422080836.png

最佳答案

查看完整内容

你这脑洞也够新奇的 窗口描绘血条,原理就是利用"矩形框" 来限制图片宽度,形成槽的效果, 从右往左, 通过改变矩形宽度来实现, 这个时候, 血条图的矩形是 X,Y,高都不动, 宽度随着血量百分比变化, 从下往上一样, X,Y,宽不动, 高度变化 而逆向血条, 做法就是 宽高不变, XY变动 Rect.new(x,y+ height - hp/maxhp * height,width,height) 这样就是从上往下缩的血槽了 ...

Lv3.寻梦者

梦石
0
星屑
2841
在线时间
640 小时
注册时间
2012-2-13
帖子
178
 楼主| 发表于 2019-4-22 22:01:33 | 显示全部楼层
QQ截图20190422215906.png

没办法了,只能用最笨的办法了,脚本实在是不怎么在行
就这样了吧

点评

case 红.to_i; when 0..5 then XXX; when 6..10 then XXX; ...... ; when 90..100 then XXX; end  发表于 2019-4-23 16:33
你改的结果公布下呗,我好跟着学习下,麻烦了!  发表于 2019-4-23 16:20
你太猛了啊  发表于 2019-4-23 07:39

评分

参与人数 1+1 收起 理由
正太君 + 1 给跪了...

查看全部评分

回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37626
在线时间
5307 小时
注册时间
2006-11-10
帖子
6539
发表于 2019-4-22 08:17:31 | 显示全部楼层
大放异彩 发表于 2019-4-22 22:01
没办法了,只能用最笨的办法了,脚本实在是不怎么在行
就这样了吧 ...

你这脑洞也够新奇的

窗口描绘血条,原理就是利用"矩形框" 来限制图片宽度,形成槽的效果,  从右往左, 通过改变矩形宽度来实现, 这个时候, 血条图的矩形是 X,Y,高都不动, 宽度随着血量百分比变化, 从下往上一样, X,Y,宽不动, 高度变化

而逆向血条, 做法就是 宽高不变, XY变动

Rect.new(x,y+ height - hp/maxhp * height,width,height)

这样就是从上往下缩的血槽了

点评

谢谢灯笼前辈  发表于 2019-4-23 14:59
其实这样也可以了,就是美工方面可能要下点功夫,每个血槽分三层图片叠加起来显示也可以实现球状血槽  发表于 2019-4-23 14:58
n = hp/maxhp ; self.contents.blt(x, y+h*(1- n),bitmap,Rect.new(x,y-h*(1-n),w,h*n))  发表于 2019-4-23 14:50
是的, 这个方法是对矩形规则适用, 血槽是球型的话,要同时移动描绘点坐标和矩形宽度即  发表于 2019-4-23 14:41
这只是让一张血槽图片往下挪吧?并不是慢慢减少这张图片的尺寸,如果血槽是球型的话 那看起来就很奇怪了  发表于 2019-4-23 14:27
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2841
在线时间
640 小时
注册时间
2012-2-13
帖子
178
 楼主| 发表于 2019-4-22 09:21:15 | 显示全部楼层
可以改成:   bitmap.width,actor.hp*1.0/actor.maxhp*bitmap.height
但却是从下往上减的

点评

我也研究研究,今天刚看教程把横向血条弄明白了,一会我也研究下纵向的  发表于 2019-4-22 19:43
是的,目前是从右到左减血,我想做从上到下减血的血条,研究了一天,没进展....  发表于 2019-4-22 19:22
你是用纵向血条图片做的吗?  发表于 2019-4-22 19:10
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37626
在线时间
5307 小时
注册时间
2006-11-10
帖子
6539
发表于 2019-4-22 09:43:24 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2019-4-22 09:45 编辑

有没有想过 Rect.new(x,y,width,height) 这两个参数是干嘛用的么

点评

也对 我试试看吧  发表于 2019-4-22 09:45
如果不是用宽或者高来操作血条, 而是用X,和Y来操作, 会有什么不一样呢? 自己想想  发表于 2019-4-22 09:45
血条坐标xy,另外两个是宽和高  发表于 2019-4-22 09:44
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14051
在线时间
2135 小时
注册时间
2019-1-24
帖子
1121

R考场第七期纪念奖

发表于 2019-4-23 12:16:01 | 显示全部楼层
本帖最后由 miantouchi 于 2019-4-23 20:52 编辑

RUBY 代码复制
  1. rect = Rect.new(0, 0, @bmp_bak.width,@bmp_bak.height) #图片黑色背景条
  2. self.contents.blt(0, 0, @bmp_bak, rect) #图片黑色背景条
  3. rect = Rect.new(0, 0, @bmp_hp.width,actor.hp.to_f/actor.maxhp.to_f*@bmp_hp.height.to_f) #图片红色血条,截取血条变化的高度
  4. self.contents.blt(0, @bmp_hp.height.to_f-actor.hp.to_f/actor.maxhp.to_f*@bmp_hp.height.to_f,@bmp_hp, rect)  #图片血条blt,0,y值变化
  5. 刚刚研究的,大家交流交流,感觉也不是太好,但是能实现这个功能
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2841
在线时间
640 小时
注册时间
2012-2-13
帖子
178
 楼主| 发表于 2019-4-23 16:42:46 | 显示全部楼层
miantouchi 发表于 2019-4-23 12:16
rect = Rect.new(0, 0, @bmp_bak.width,@bmp_bak.height) #图片黑色背景条
self.contents.blt(0, 0, @bmp_b ...

RUBY 代码复制
  1. actor = $game_party.actors[0]
  2.     bitmap = RPG::Cache.character(actor.character_name,actor.character_hue)
  3.     bitmap = RPG::Cache.picture("XT/HP")
  4.     @图标.bitmap.blt(16,9,bitmap,Rect.new(0,0- bitmap.height + actor.hp*1.0/actor.maxhp * bitmap.height,bitmap.width,bitmap.height))
  5.     bitmap = RPG::Cache.picture("XT/MP")
  6.     @图标.bitmap.blt(751,9,bitmap,Rect.new(0,0- bitmap.height + actor.sp*1.0/actor.maxsp * bitmap.height,bitmap.width,bitmap.height))
  7.     bitmap = RPG::Cache.picture("XT/血条2")
  8.     @图标.bitmap.blt(0,0,bitmap,Rect.new(0,0,bitmap.width,bitmap.height))


由于血槽是从上到下来减少,如果想做成球状的血槽,每次减血血槽都会往下挪,球状也会跟着向下移动,然后我将球状血槽素材改成方形,再额外增加1层“球型血槽框”的素材来覆盖上去,这样看上去就是球状的了,再次感谢灯笼前辈的帮忙,我脚本还在学习当中,目前也只是练习部分修改,特别复杂的功能目前还不敢想
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37626
在线时间
5307 小时
注册时间
2006-11-10
帖子
6539
发表于 2019-4-23 18:05:07 | 显示全部楼层
不好意思,之前算法有误, 这才是正确的

圆形血槽.rar (193.92 KB, 下载次数: 135)

点评

太赞了,比我上面那个省了不少素材,非常感谢前辈的热心帮助  发表于 2019-4-23 18:29
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 06:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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