我有一個問題, 我的碰撞檢測函數有時會將實體的位置設置爲NaN。 當我打開控制檯(在鉻上)實體和碰撞的位置是有效的數字,但相互減去它們有時會返回NaN。Javaskript:簡單的減法函數返回NaN
updateCollision = function(entity,rect) {
var a = entity.x - rect.x; // a = NaN , entity.x = 3117.2646499953607 , rect.x = 3296.976967651385
var b = entity.y - rect.y; // b = NaN , entity.y = 3024.105915848102 , rect.y = 3144.4270586199345
if(isNaN(a)) // isNaN(a) = true
{
console.log("not again >:("); // but console doesn't log
}
//the code continues but its not important
截圖控制檯:
所以我真的迷茫了,不知道如何處理這個問題做。
也許你打電話updateCollision嚴重 - 你怎麼樣console.log實體和矩形,並確保每個x/y屬性實際上是數字 –
你應該記錄更有用的東西,如'a'和'b'的值。 – Xufox
請更新問題以包含問題的[mcve]。您的屏幕截圖顯示了Chrome的開發工具,並在代碼暫停時突出顯示了某些內容,但值得注意的是,**沒有顯示您在哪些語句中暫停**(將以藍色突出顯示)。因此,儘管這些變量可能具有這些值,但不管它是什麼語句,它都顯示不在該代碼的截圖中,並且在該函數的開始處計算「a」和「b」時是不對的,所以我們沒有辦法幫助你弄清楚發生了什麼事。 –