2013-07-02 126 views
0

我使用Cocos2D進行遊戲開發。這是我最近遇到的。觸摸次數在第一次觸摸後顯示1

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
     NSLog(@"Number of touches %d",touches.count); 
} 

我在iPod touch上運行我的示例應用程序,並用兩根手指觸摸屏幕。第一次觸摸時,日誌顯示「觸摸次數2」,但在第一次觸摸後,無論接觸到多少個手指,我都會得到「觸摸次數1」。

我也有抽頭計數問題。如果我的NSLog水龍頭計數和觸摸屏幕,我得到以下輸出:

The tap count is 1 
The tap count is 2 
The tap count is 3 
And so on..... 

我不應該只得到「抽頭數3」時,我槍王屏幕而不是讓1,2,3的?它註冊所有的水龍頭直到最後一個。

我所知道的和我肯定是接觸:

  1. 觸摸可以根據手指輕敲屏幕是單或者多點觸摸。
  2. Touch的觸控計數屬性可以是1或更高。

我需要這兩種行爲才能正常工作,因爲我將根據觸摸和水龍頭的數量來決定做什麼。

回答

2
NSArray * touchArray = [touches allObjects]; 
NSLog(@"Number of touches %d",touchArray.count); 

上面的代碼是很多觸摸如何,如果你做

NSSet *touches= [event allTouches]; 

,你會立刻得到多少接觸的計數觸發一種方法,在兩個手指輕敲或三指當前活動水龍頭

+1

這真的有助於觸摸的次數。但是我沒有得到一件事情:計算NSSet中的對象並將其中的所有對象放入一個NSArray然後對該數組進行計數有什麼區別? –

+0

希望這可以幫助你看到他們在方法http://www.techotopia.com/index.php/An_Example_iOS_4_iPhone_Touch,_Multitouch_and_Tap_Application – rezand

+0

@MikeJM中使用了一個nsuinteger作爲抽頭計數,並回應你關於使用蘋果NSSet方法和創建自己的數組,老實說,我會寫它完全按照你原來的方式,因爲它看起來應該工作,但我查了一下,看到多個其他人使用自己的數組沒有問題。只要確保即使您已經擁有它,也要確保您的視圖具有允許用戶互動和選中故事板中的多點觸控啓用複選框。 – rezand