2016-12-07 32 views
0

我正在做一個蛇遊戲,當我嘗試這個遊戲....我注意到一個巨大的錯誤,但我不知道如何解決它。基本上,當你玩它時,如果蛇與畫布的右手邊碰撞,遊戲會繼續,但如果它碰到畫布的頂部,底部或左側,遊戲就會如預期般結束。那麼我該如何解決這個問題:遊戲網站需要小故障修復

那麼我如何確保當蛇與畫布右手邊發生碰撞時,遊戲結束而不是繼續進行?該代碼的某個部分的修復在哪裏?

+1

創建一個工作小提琴的地方,所以我們可以測試,請 – junkfoodjunkie

+1

你去jsfiddle.net,或者你在這個頁面上使用片段功能? – junkfoodjunkie

+1

是的,你有,但我不能玩它來測試它。您需要確保測試/示例真正起作用(除了它當然不會注意到正確的牆)。目前我無法移動蛇(箭頭鍵不起作用,看起來)因此,我實際上無法測試它(除非您重新設計它從左到右,而不是從默認的從下到上) – junkfoodjunkie

回答

1

不完全確定爲什麼,但它的工作原理:將if (snakeX == -1 || snakeX == w/snakeSize || snakeY == -1 || snakeY == h/snakeSize || checkCollision(snakeX, snakeY, snake)) {更改爲if (snakeX == -1 || snakeX == 56 || snakeY == -1 || snakeY == h/snakeSize || checkCollision(snakeX, snakeY, snake)) {它有效,但我不完全確定它爲什麼有效。問題的關鍵在於蛇在遠離右邊界之前沒有遇到右側(元素的寬度設置爲565,並且如果您記錄了snakeX-變量,則會看到原始當代碼值爲565時代碼停止)。改變比較的作品,但我不是100%確定它爲什麼有效(對此感到抱歉)。我現在有點太累了。

+1

首先 - 你不應該刪除代碼......這意味着這個線程對於任何想要做同樣的事情的人來說都沒有任何用處。這基本上只是顯示/插入一個文本節點(一個包含文本的元素),而不是僅僅刪除蛇遊戲的容器,或者你可以做一個alert():'alert('Game over ');'什麼時候結束。 – junkfoodjunkie

+1

啊,當然你必須把分數加到那個警報上,不知何故 - 我現在沒有代碼,但我假設你有一個函數或變量與分數?然後重新使用它。 – junkfoodjunkie

+0

哦,我明白了,只是做了它,它工作。再次感謝 :) –