查看: 6339|回复: 2

[已经解决] 脚本contents框x轴长度显示不正常

[复制链接]
梦石
0
星屑
423
在线时间
37 小时
注册时间
2013-7-1
回帖
16
发表于 2021-4-26 08:40:29 | 显示全部楼层 |阅读模式
悬赏100星屑已解决
本帖最后由 774204155 于 2021-4-26 09:27 编辑

想通过控制contents的X轴大小来呈现出血量减少时的血条变化效果

[pre lang="ruby"]@X = @hp_a
self.contents.blt(110,5 , bitmap5, Rect.new(0, 0, @X, 21))[/pre]

这是把它的X轴大小设置为角色血量,这种状况下血条会如实地减少
未标题-2.jpg

血槽的长度我设置为300,角色的血量是100,此时如果角色受伤血条是会减少的
但是血条在满血的时候并没有填满血槽 于是

[pre lang="ruby"]@X = @hp_a / @maxhp_a
self.contents.blt(110,5 , bitmap5, Rect.new(0, 0, @X*300, 21))[/pre]

写成了以上这样

X是角色的生命百分比
contents的x长度就是300乘以这个百分比
结果满血的时候血条正常地充满血槽

未标题-3.jpg

但一旦扣血血条直接消失

未标题-4.jpg


琢磨了半天,实在是百思不得其解
还请大佬们不吝赐教


======221/4/26/9:25======

摸索着自己解决了。。。写成这样就正常运行了
  1. self.contents.blt(110,5 , bitmap5, Rect.new(0, 0, 300*@hp_a/@maxhp_a, 21))
复制代码


但还是想知道之前为什么不能正常运行
未标题-4.jpg

最佳答案

查看完整内容

因为 整数相除只能得到整数 100 / 100 #=> 1 ; 50 / 100 #=> 0 改成浮点数就没问题了 @X = @hp_a.to_f / @maxhp_a
菜得真实但还是想做游戏
梦石
0
星屑
42235
在线时间
6017 小时
注册时间
2006-11-10
回帖
6966
发表于 2021-4-26 08:40:30 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2021-4-26 09:33 编辑

因为 整数相除只能得到整数  100 / 100 #=> 1 ; 50 / 100 #=> 0

改成浮点数就没问题了  @X = @hp_a.to_f / @maxhp_a

点评

!原来是基础知识没掌握!受教了!  发表于 2021-4-26 09:53

评分

参与人数 1赞 +1 收起 理由
774204155 + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部