麻烦java算术

时间:2013-05-06 16:09:56

标签: java math

我在java中制作一个侧滚动射击游戏,我正在试图找出知道子弹会​​在墙上撞击的背后的算法。到目前为止,我已经决定使用斜率截取形式可以工作,但是当我将代码转移到java时,它给了我奇怪的答案。

    double impactY = ((mouseY-player.yPos)/(mouseX-player.xPos) * (800 - player.xPos) + player.yPos);
                                     ^Slope^                         ^ x value for the wall.

    impactY = 580.0

由于

1 个答案:

答案 0 :(得分:2)

如果没有您提供有关您的问题的更多信息,我最好的猜测是,当您不想要的时候,您会遇到“整数除法”。

如果MouseYpalyer.yPosmouseX,& player.xPos是整数,除(mouseY-player.yPos)/(mouseX-player.xPos)除法是整数除法。 http://mathworld.wolfram.com/IntegerDivision.html

你需要做的是在分割发生之前将分子或分母强制转换为double / float:

((double) mouseY-player.yPos)/(mouseX-player.xPos)