我想用cocos2d開發一款遊戲。我現在卡住了。我不知道如何檢測雙擊事件,就像在Windows中雙擊一樣。我嘗試在ccTouchesEnded
在cocos2d中雙擊
使用
NSArray * allTouches = [touches allObjects];
int count = [allTouches count];
但這似乎在雙觸摸發生在同一時間工作。我想知道它在Windows中的樣子。
任何人都可以給我一些想法嗎? 在此先感謝。
我想用cocos2d開發一款遊戲。我現在卡住了。我不知道如何檢測雙擊事件,就像在Windows中雙擊一樣。我嘗試在ccTouchesEnded
在cocos2d中雙擊
使用
NSArray * allTouches = [touches allObjects];
int count = [allTouches count];
但這似乎在雙觸摸發生在同一時間工作。我想知道它在Windows中的樣子。
任何人都可以給我一些想法嗎? 在此先感謝。
如果使用targetedTouchDelegate,你可以這樣做:
- (void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
if(touch.tapCount==1) MPLOG(@"ONE TAP");
if(touch.tapCount==2) MPLOG(@"TWO TAPS");
return;
}
你會得到兩個觸摸時雙擊發生,即這將記錄這兩個「一個水龍頭」和「兩個水龍頭」時,有是一個雙擊。由你決定你的狀態並做你的事情。
你是一個傳奇人物。多麼好的解決方案。謝謝。 – PKCLsoft 2017-10-24 04:06:29
你在談論多點觸摸2手指點擊或雙擊就像在Mac和Windows?
如果是在Mac和Windows中雙擊,那麼這裏是解決方案。
你可以用兩種方法做到這一點。通過LearnCocos2D在此question建議
使用UITapGestureRecognizer(設置爲檢測雙水龍頭)。
使用手動雙擊跟蹤使用時差。在接口文件
NSTimeInterval mLastTapTime;
// decalre此實施文件:
-(id)init
{
if(self = [super init])
{
mLastTapTime = [NSDate timeIntervalSinceReferenceDate];
}
return self;
}
//在觸摸方法
NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate];
NSTimeInterval diff = currentTime - mLastTapTime;
if(diff < 0.5) //0.5 or less
{
//double tap
}
mLastTapTime = [NSDate timeIntervalSinceReferenceDate];
UITapGestureRecognizer可以設置測試對於雙擊,請參閱:http://developer.apple.com/libra ry/ios/#documentation/uikit/reference/UITapGestureRecognizer_Class/Reference/Reference.html#// apple_ref/occ/cl/UITapGestureRecognizer – LearnCocos2D 2013-02-13 23:24:36