2016-11-05 40 views
0

我想打一個球移動到某一方向就像我給數 0 - 360。目前,我的習慣是:右製作球移動到指定方向

0的動作,90下,180左右270了。

問題是,如果我把東西像10,11,12等,它根本不動。有些數字讓它以45度的角度移動。

我當前的代碼:

float x = 0, y = 0; 
float speed = 1f; 

int angle = 90; 

float moveX += speed * Math.cos(Math.toRadians(angle)); 
float moveY += speed * Math.sin(Math.toRadians(angle)); 

x += moveX; 
y += moveY; 

moveX = 0; 
moveY = 0; 

如果我脫下toRadians,球去到不同的方向,但仍然無法正常工作。

我的數學和英語是可怕的,所以儘量解釋這個簡單的儘可能。我不知道弧度和度數之間的差異。

+1

啊提示:生活中沒有少走彎路。如果你想做數學......那麼認識數學是必不可少的。也許從這裏開始:http://www.purplemath.com/modules/radians.htm ...這是現在的好東西:只需將你需要了解的術語放入搜索引擎,通常你會發現一噸免費學習材料。所以請不要指望我們**再次寫下這種基礎知識......只爲你。 (我並不是說你的問題不好,我只是指出你不需要我們進行基礎研究)。 – GhostCat

+0

我試過了..我試着學習弧度和度數,但是我用英語做得很難,因爲我知道只有加,減,乘,除。 – Maineri

+0

您是否嘗試在網上搜索您的語言材料? – GhostCat

回答

0

之前,我不知道弧度和度等

之間的差異這不正是這個網站,但這裏有一個簡單的解釋。弧度和度數是2個度量單位(如公里和英里)。圓有360度,或2π弧度。這意味着,

1 degree = π/180 (0.0174533) radians 
1 radian = 180/π (57.2958) degrees 

使用radiands圓圈的4個主要方向將是0或2π,π/ 2,π,3π/ 2對應於0或360,90,180,270度。

我想使球移動到某一方向就像我給數從0 - 360

現在你的代碼。你有一個語法錯誤在你剛纔宣佈moveX

float moveX += speed * Math.cos(Math.toRadians(angle)); 

,這樣你就不會添加到它與+=,你只是分配給它=。與moveY相同。現在,如果你以後

x += moveX; 
y += moveY; 

打印xy你會得到正確的結果。我不知道爲什麼之後,你將他們設置爲0 - 你將失去球的位置。

+0

哦,對不起,'浮動'有事故,我沒有在我的真實代碼中有。在將x和y添加到我的球x之後,我將moveX和Y設置爲0。 – Maineri

+0

@Maineri然後下一次避免這種情況發佈[mcve]。那麼這能解決你的問題嗎? – user1803551

+0

不是真的..我想我太簡單的人來理解這一點。 – Maineri