[英]Javascript bullet function / projectile, 2D Game
我目前正在嘗試修改這段代碼,以便我的播放器能夠射擊。 我被卡在玩家實際上什么都不射擊的那一刻(盡管單擊時沒有畫出圖像,盡管沒有概述錯誤),導彈只需要在我的畫布上向上移動。 我希望此問題的任何答案也能提供某種形式的學習,因為我有興趣實際了解如何正確實施此方法,而只是需要某種快速修復。
當setInterval
調用moveBullet
, this
值將不是bullet,而是window
。 嘗試使用以下方法將該功能綁定到項目符號:
setInterval(bullets[bullets.length - 1].moveBullet.bind(bullets[bullets.length - 1]), 25);
有關更多信息,請參見此鏈接 。
編輯:更新更多修復程序:
您應該在瀏覽器中顯示控制台(大多數瀏覽器中為F12)。 這將列出您遇到的一些錯誤。
x
和y
。 請改用spaceShip.x
和spaceShip.y
。 angle
,它在任何地方都沒有定義 movebullet
函數。 應該是moveBullet
Edit(2):更多修復程序還有幾個問題需要修復。
render
功能會更新整個背景,這意味着即使項目符號被繪制,項目符號也會立即被覆蓋。 您應該將實際的項目符號圖移動到渲染功能。 我已經用一些修復程序更新了您原始的JSFiddle,足以將其繪制(不刪除)。 你可以在這里找到它。 我還更改了它,使其每按一次空格鍵只能有1個項目符號(以幫助調試)。
此刻,我只是讓它停止繪制背景,以便您可以看到項目符號,但是您應該查看將項目符號繪制(而不是移動)移至渲染功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.