[英]Direction of a moving sprite
我正在做一個簡單的突破游戲,我有一些問題要理解我應該如何處理球的速度和方向,以便在不同的對角線路徑中移動它。 我在更新方法中使用此代碼:
xPos += xSpeed * direction;
yPos += ySpeed * direction;
如果我使用xSpeed = 2
和YSpeed = 1
不同vaules,我可以改為不同的對角線路徑,但我仍然想要相同的速度。 如果我增加xSpeed = 4
值以獲得另一個對角線路徑,那么速度也會增加,我希望球以相同的速度移動。 對於direction
的值,我使用1或-1。 但我想改變direction
的值以獲得度數的對角線路徑會更好嗎? 在突破性的比賽中,球必須在oppesite方向上反彈。 我的數學不好,所以我會提前幫助解決這個問題。 我有什么想法可以改進我的代碼?
您可以使用sine
和cosine
函數來獲得x
和y
軸的相對運動。
喜歡:
xPos += speed * Math.sin(movementAngle);
yPos += speed * Math.cos(movementAngle);
在各種動畫中使用上述( 極坐標 )具有易於調整方向或移動速度(分別是speed
和movementAngle
變量)的優點。 當使用笛卡爾坐標( x
和y
位置)時,改變速度或移動方向將需要對x
和y
進行非明顯的改變。
上述解決方案中的公式只不過是從極坐標到笛卡爾坐標的轉換。
編輯:為了獲得更“自然”的行為,當movementAngle
為0
意味着向右移動時, PI/2
-up, PI
-left和3*PI/2
-right,請使用以下內容:
xPos += speed * Math.cos(-1*movementAngle);
yPos += speed * Math.sin(-1*movementAngle);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.