请教达人一个血条的理论,该怎么写,比如

a1835674167 2012-12-21 08:55:44
比如,有一个血条

这个时候传递进来的怪物血是765(满血),

血条的大长度,只能是35
意思就是说,我想要达到的目的,不管这个怪物血是多少,要把这个765给他缩小成35
可能我表达的不太好,请求各位老大写个算法
...全文
248 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sumos 2012-12-21
  • 打赏
  • 举报
回复
首先,推荐变量用 float 或者 double类型。 其次,做个简单的比例: 假设怪物 满血 full = 1000.0f,进度条长度 len = 50, 当前怪物血量 now = 500.f,那么进度条 pos = (int)(len * now / full);
a1835674167 2012-12-21
  • 打赏
  • 举报
回复
小弟没听明白,请求给个例子,在线等
Zoelov 2012-12-21
  • 打赏
  • 举报
回复
用35代表765,那么也就是1代表765/35,你按比例缩放不就可以了吗
a1835674167 2012-12-21
  • 打赏
  • 举报
回复
感谢达人 但是我的血条的总长度是35 如果765是满血,这样算的话,那么这个怪物明明是满血,但是血条上却显示80%左右的血,不是有问题吗
zilaishuichina 2012-12-21
  • 打赏
  • 举报
回复
引用 楼主 a1835674167 的回复:
比如,有一个血条 这个时候传递进来的怪物血是765(满血), 血条的大长度,只能是35 意思就是说,我想要达到的目的,不管这个怪物血是多少,要把这个765给他缩小成35 可能我表达的不太好,请求各位老大写个算法
765 / 35 = 21 余 30 也就是你的血条的一个单位长度 代表21点血(或者向上取整代表22点血也可以) 当血值每降21 血条长度降1 最后剩余的那一点 从画面上看 基本上是看不出来
a1835674167 2012-12-21
  • 打赏
  • 举报
回复
i和b是变量吗,还是什么?
a1835674167 2012-12-21
  • 打赏
  • 举报
回复
非常感谢楼上的达人,没看明白你的例子 请问你写的 I 和 b分别都是什么意思
图灵狗 2012-12-21
  • 打赏
  • 举报
回复
很简单的线性映射而已: l / 35.0 = b / 765.0 => l = b * 35.0 / 765.0 => l = (int)l
snake_xiongyang 2012-12-21
  • 打赏
  • 举报
回复
你可以把多的30的像素放在最左边,留作“血皮”。 你小时候玩过街霸没,想下里面的血条,始终有一丝血皮是黄色的。
赵4老师 2012-12-21
  • 打赏
  • 举报
回复
■■■:3 ■■:2 ■:1.5 ■■:0.5 ■■■:0
赵4老师 2012-12-21
  • 打赏
  • 举报
回复
就算35个像素宽也可以利用类似反锯齿技术显示比如31.33对应的值啊。 对比GDI和GDI+

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧