public double getDamage(double distance){
int damage1 = 30; // (0 - 38.1)
int damage2 = 20; // (50.8 - *)
double range1 = 38.1;
double range2 = 50.8;
double damage = 0; // FORMULA
return damage;
}
我尝试创建一个公式来计算距离所造成的伤害量。
(可变距离=)
0至38.1米将返回30点伤害。
50.8 直到 Inifite 它将返回 20 点伤害。
38.1 到 50.8 会线性下降 30 -> 20。
如何让这个方法发挥作用?
提前致谢。
最佳答案
听起来像这样:
double x = (distance - range1) / (range2 - range1);
if (x < 0)
x = 0;
if (x > 1)
x = 1;
return damage1 + x * (damage2 - damage1);
基本上,您遵循线性规则,并进行调整以保持在线性区间内。
关于java - 创建距离和伤害的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195094/