2011-06-09 102 views
0

我想知道它是怎麼可能的,我可以在某個點繪製一個對象並移動到屏幕上的點。我試圖將它用於我的遊戲,當用戶觸摸屏幕時,槍會從玩家的位置觸發,但玩家是靜止的。移動對象幫助

在此先感謝。

P.S.

是否有某種視覺圖形顯示每個情節在android上的位置。

+0

我不想做一個拖放。玩家圖標位於PointA,永不移動。攻擊的精靈向他移動。而且我試圖將它放到屏幕上,當它觸摸屏幕時,它會向該位置發送一顆子彈。但是直到你觸摸屏幕,子彈纔會被繪製。 – Manji 2011-06-09 23:12:38

回答

0

我不知道你用什麼樣的庫來繪製所有的事情,但基本上沒有關係,因爲你只需要知道爲了做到這一點兩件事情:

無進入矢量幾何的細節:

1.您需要根據鼠標的位置計算出射彈移動的方向(x和y分量)。您可以通過簡單地從玩家的位置減去鼠標的位置得到這個方向:

//x component of direction 
float direction_x = mousePosition.x - playerPosition.x; 
//y component of direction 
float direction_y = mousePosition.y - playerPosition.y; 

爲了只得到一個方向,而不是添加的速度分量這一載體,需要正常化它(所以它的長度1):

float length =(float) Math.sqrt(direction_x*direction_x + direction_y*direction_y); 
direction_x /= length; 
direction_y /= length; 

然後,您需要通過添加direction_x和direction_y組件到它,乘以所需的彈要有速度更新彈位置(這個過程稱爲線性插值,順便說一句):

projectile_x += direction_x*speed; 
projectile_y += direction_y*speed; 

如果您有測量兩幀之間時間的方法,則速度變量應取決於這些幀之間的時間間隔,以便在不同平臺上創建平滑移動。

+0

@heishe你不需要創建HTML標籤來處理代碼。只需選擇代碼並點擊「代碼示例」按鈕(或者每行添加4個空格) – WarrenFaith 2011-06-09 23:15:56

+0

謝謝!我已經想知道爲什麼這麼做太複雜了。我瀏覽了FAQ並沒有找到任何東西,所以非常感謝:) – TravisG 2011-06-10 16:48:45

+0

我會把這一點放到我的項目符號類或我的線程內。 – Manji 2011-06-10 19:52:30