2011-03-20 85 views
1

我正在創建簡單的遊戲,並且達到了讓我感到無助的地步。我的幾何形狀很好,但很長一段時間回到學校,現在試圖讓我更加放鬆。Objective C遊戲幾何問題

比方說,我有iPad屏幕。對象在一個給定時間點的xy位置和另一個時間點的xy位置存儲在2個變量中。

問題: 如何找到在屏幕的端部的物體的第三位置被給予前2個位置時,考慮從第1點在相同的方向(行)的對象移動到點2

提前致謝。

回答

-1

如果對象是在相同的方向上移動和你有一個水平行,下一個位置給定的x和y是

x+1, y 

如果對象是在相同的方向中的垂直線移動它將

x, y+1 

如果對象是在對角線上向右移動

x+1,y+1 

直徑五角右下方

x+1, y+1 

角左下

x-1, y-1 

對角線左上方

x-1, y+1 

所以東西一般是:

newPosition = (x+1,y) //if you wish to move forward to the right, try to handle all  
         cases 

所有上述情況如果物體正在移動,則工作前進,如果它正在向後移動,只需改變+ by - 。基本上將對象想象爲在笛卡爾座標系中移動,其中x是水平的而y是垂直的。

我認爲你可以得到的想法出來的這三例;)

+0

給這並不能解決所有可能的情況。 – alternative 2011-03-20 23:01:35

+0

我知道,但它是一個開始 – eLobato 2011-03-20 23:07:32

+0

我的對象通過觸摸移動。上述方法並沒有解決我的問題。如果我的第一個點100x 100y和第二個200x 458y,給定的方法將不起作用。我確定有一些基本的三角函數可以對它進行分類。有任何想法嗎? – 2011-03-20 23:46:31

2

讓我們有v1v2是代表兩個點的載體。假設t0是兩點之間的時間。設t爲當前時間。

那麼,我們的位置矢量v3v3 = v1 + (v2 - v1)t/t0

+0

在這種情況下你打算如何處理時間? – eLobato 2011-03-20 23:07:17

+0

時間並不關心我,我有CADisplayLink * theTimer; – 2011-03-20 23:48:55

+0

那麼你如何在對象c的特定時間點訪問v3的x和y。 – 2011-03-20 23:52:16