2009-04-14 58 views
0

我正在研究pong遊戲,並且正在研究移動球的機制。如果我給x加1,球就向右移動1個像素,如果我給y加1,球就會向下移動1個像素。如果我想以某個角度移動球,那麼如何計算座標。在JPanel中移動項目

回答

2

嘗試使用角度將會比你需要得到更復雜一點。對於這種動畫,您通常希望使用浮點數來存儲對象的x和y座標,並通過應用x和y角度來移動它(浮點數將保留在屏幕上繪製時四捨五入的位置細節)。增量表示物體在每個軸上移動的速度,可以是負值或正值。

對於動畫的每次迭代,將xdelta添加到x座標並將ydelta添加到y座標。將它們四捨五入以將它們放置在屏幕上。

當您點擊頂部或底部邊框時,您可以交換ydelta組件上的標誌,同樣也可以更換側邊框。

您不希望始終保持相同的x和y增量,因此當物體碰到槳時,稍微修改x或y增量以改變角度。

1

您正在尋找線條繪製算法,類似於Bresenham或DDA,您可以找到一些合理的實現方法,而不是繪製完整的線條,而是沿着該線條移動球,但找到要移動的一組線條的方式上是一樣的。

1

對於像Pong這樣的東西,你應該研究矢量數學,但如果你想要的只是知道一個角度,你真正需要的是SOHCAHTOA