所以我想为玩家制作一个健康栏的游戏,但每当我使用交叉产品或任何其他数学方法时应该使用的百分比结果是0.0
... 这是处理这个问题的.java文件:如何计算Java中的百分比?
package com.game.graphics;
import com.game.entity.mob.Mob;
public class HUD {
Mob target;
Sprite healthbar;
Sprite bgBar;
double percent_normal;
public HUD(Mob target) {
this.target = target;
bgBar = new Sprite(0xff777777, 104, 8);
healthbar = new Sprite(0xffFF0000, 100, 6);
}
public void update() {
percent_normal = target.getHealth()/100;
percent_normal *= target.getMaxHealth();
}
public void printData() {
System.out.println("Normal(" + percent_normal + ")");
// if the targets's health is any lower than the max health then this seems to always return 0
}
public void render(Screen s) {
s.renderSprite(5, 5, bgBar, false);
s.renderSprite(7, 6, new Sprite(0xffFF0000, (int) percent_normal, 6), false);
}
}
我不确定我的数学是否完全关闭,或者如果我正在讨论这个可怕的错误。我试图查找如何计算它无济于事,所以这就是为什么我在这里提出这个问题。
如何计算_math_中的百分比?你除以100还是乘以? O.o – Rishav
是'target.getHealth()'一个整数吗? '/ 100'将是整数除法,并舍入(最可能为零)。 – Teepeemm
可能重复的[为什么用整数分隔一个float返回0.0?](http://stackoverflow.com/questions/3779604/why-does-dividing-a-float-by-an-integer-return-0- 0) – MarsAtomic