我已经四处寻找了很多,但我就是找不到一个好的解决方案......
Point mouse = MouseInfo.getPointerInfo().getLocation();
int dx = (BULLET_SPEED*Math.abs(x - mouse.getX()))/
(Math.abs(y - mouse.getY()) + Math.abs(x - mouse.getX()))*
(x - mouse.getX())/Math.abs(x - mouse.getX());
在这个星座中,我得到:当我将 (x - mouse.getX())
更改为 (x - mouse.getX()).doubleValue( )
它说 double 不能被取消引用,当我在某处添加 intValue() 时,它说 int 不能被取消引用。我的错误是什么?
[x, y 是整数 | BULLET_SPEED 是一个 static final int
]
谢谢!
最佳答案
我将 x
、y
和 BULLET_SPEED
存储为 double,以 double 执行所有算术,然后将其转换为 int 作为最终值步骤。
关于java - 可能会损失精度/[类型]无法取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873634/