2013-05-06 46 views
-2

我正在製作一個側面滾動的射擊遊戲,我試圖找出背後的算法,知道哪裏的子彈會影響牆壁。到目前爲止,我已經決定使用斜率攔截形式可以工作,但是當我將代碼轉換爲java時,它給了我奇怪的答案。java運算問題

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

    impactY = 580.0 

感謝

+4

你是什麼意思由_strange answers_做? – 2013-05-06 16:11:12

+2

這些值的聲明類型是什麼?它影響Java如何計算這些值。 – 2013-05-06 16:11:28

+0

很明顯,那個方程的結果不是580,我相信所有的值都是整數。 – 2013-05-06 16:15:03

回答

2

沒有你提供你的問題的詳細信息,我最好的猜測是,你正在運行到「整數除法」時,它是不是你想要的。

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

你需要做的就是投或者分子或分母爲雙/浮法發生之前的分工是什麼:

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