【发布时间】:2015-11-10 02:18:57
【问题描述】:
所以我正在尝试为玩家制作一个带有健康栏的游戏,但每当我使用叉积或任何其他应该有效的数学方法时,百分比结果都是0.0...
这是处理此问题的 .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
-
target.getHealth()是整数吗?/100将是整数除法,并向下舍入(最有可能为零)。