2011-03-20 66 views
1

可以說我有一個角度...什麼是尋找球的下一個點的合理方式?對於乒乓球遊戲的數學

變量:bSpeed,手鐲,Ball.x,Ball.y

你knwon當你做C^2 = A^2 + B^2 ... ...有你可以找到多久℃的方式^ 2可能並且實際上「畫」出來,然後用速度去只有一部分......找到一個^ 2和b^2,所以你實際上可以有斧頭和ay來畫球......

提前致謝! (順便說一句,我不需要代碼...只是推理和智慧)

回答

2

你的4個變量實際上是一個矢量 - 矢量是方向和大小/速度的量度(也就是你代表的bSpeed和bAngle)。使用這種表示意味着Ball.x和Ball.y只是成爲向量的水平和垂直分量。

給定一個稱爲v1的向量,我們可以計算x和y軸的運動如下...

xVelocityOfBall = v1.magnitude * cos(v1.angle); 
yVelocityOfBall = v1.magnitude * sin(v1.angle); 

GPWiki(遊戲編程維基)是一個偉大的資源,用於任何數學/物理遊戲開發。這裏有一個方便的鏈接vector page

2
delta_x = speed*cos(angle) 
delta_y = speed*sin(angle) 
new_x = x+delta_x 
new_y = y+delta_y 

,然後你只需要改變速度和球的角度在牆上撞擊的情況下)

0

打開你的教科書因爲你使用bAngle,所以你可以在Sin,Cos和Tan上找到它。具體來說,你可能會看到垂直運動的Sin和水平運動的Cos。取決於您定義度0的位置。

此外,您可以考慮緩存的水平和垂直速度,因爲正弦和餘弦昂貴

0

你可能需要考慮的是,乒乓球運動員也正在運動的物理過程。例如,如果一名球員的槳在與球接觸時向左快速移動,球就需要加速到左邊的方向。這代表了物理學勢頭的轉移。在x和y方向方程的一般系統將始終是:

  1. 質量*速度(以x)= x中的所有對象
  2. 質量*速度的質量*速度的總和(在y中)=所有物體的質量*速度的總和y中

一般來說正弦你總是在X球的速度和y所有你需要做的是確定球和兩個羣衆槳(我想這取決於你,但我建議讓他們一樣易於計算)。

就解決角度而言,它非常簡單,您只需確保反射相等即可。如果球從60度事件接近槳(或牆),則反彈也應該在60度事件中。

0

首先,使用sincos函數將角度轉換爲矢量。這告訴你球的相對X速度和Y速度。然後,爲了找出球實際走多遠,將這些數乘以球的速度和飛行時間。最後,加入球的起始位置。這給了你球的結局位置。

在乒乓球遊戲中,球可能撞到一個物體,在這種情況下,您需要糾正速度變化。