2009-11-12 27 views
1

我打算開發一款球類遊戲,我必須同時觸碰兩個/更多 的球。那麼我將如何檢測這些多點觸控。 我來了解以下辦法可以檢測多個觸摸
- (無效)的touchesBegan:(NSSet中*)toucheswithEvent:(的UIEvent *)事件Cocoa touch/i-phone中的多點觸控問題

{
UITouch *觸摸= [觸摸anyObject];
NSSet * touch2 = [event allTouches];
[touch2 count] //計數爲no。的觸摸

}

僅沒有檢測。的觸摸。但我需要找出這些接觸點的(x座標,y座標)。不僅當我投擲(這意味着接觸一個球,然後滑動光標)這個球,我將如何識別哪個球正在移動(意味着touchmove將識別哪一個touchbegan?並且如果對於每個球touchmove被調用,那麼我將如何重置球位置,因爲我爲兩個球獲得了兩個位置(x1.x2)和(x2,y2),那麼將如何我說哪個球屬於(x1,y2)或(x2,y2))。

回答

0

在代碼中大約touch2是一套UITouch的對象

你可以在每個對象得到像這樣:

UITouch *touch = [[touch2 allObjects] objectAtIndex:0]; 

編輯:添加有關touchesMoved信息

touchesBegan是當一個或多個手指放在屏幕上時調用。 此時您需要確定哪個球對應於每次觸摸(通過使用每次觸摸的座標)。您將需要存儲此映射。

touchesMoved將隨着手指在屏幕上移動而被不斷調用。使用之前計算的映射,您可以確定哪個球對應於哪個UITouch,並在您認爲合適的情況下對其應用一些移動。

也許你應該在蘋果文檔中閱讀handling a complex multi-touch sequence

+0

thanx for reply,但[[allTouches allObjects] objectAtIndex:0]不起作用。沒有找到像這樣的方法.Plz說的是確切的函數。 – russell 2009-11-12 09:21:16

+0

對不起,現在我明白了「allTouches是一組UITouch對象」的含義。對於reply.thanx,但任何人都可以回答我的第二個問題。 – russell 2009-11-12 09:35:18

+0

我編輯了答案以清除「allTouches」的含義,並添加了有關touchesMoved的信息。 – 2009-11-12 10:17:17