2012-03-01 78 views
1

在我的應用程序的委託,我確信我也行:爲什麼我的Cocos2d測試應用程序不會觸發「touchesBegan」事件?

[glView setMultipleTouchEnabled: YES]; 

而且我有一個簡單的一層意思只有弄清楚觸摸如何多的工作。該.mm文件看起來像:

#import "TestLayer.h" 

@implementation TestLayer 
-(id) init 
{ 
    if((self=[super init])) { 
     [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES]; 
    } 
    return self; 
} 

-(void) draw{ 
    [super draw]; 
    glColor4f(1.0, 0.0, 0.0, 0.35); 
    glLineWidth(6.0f); 
    ccDrawCircle(ccp(500,500), 250,CC_DEGREES_TO_RADIANS(360), 60,YES); 

} 

-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"got some touches"); 
} 

-(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"some touches moved."); 
} 

-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    NSLog(@"a touch began"); 
    return FALSE; 
} 
@end 

當我觸摸屏幕時,我總是看到「觸摸開始」,但無論怎樣我觸摸它(模擬器或實際設備),我從來沒有看到「一些觸摸移動「或」有些觸動「。

我還需要做些什麼才能使多點觸摸工作?

具體來說,我只是想......我聽說有某種手勢識別爲iPhone做基本的雙指縮放功能......它爲Coco2ds工作?即使我無法獲得簡單的多點觸摸事件觸發,它會工作嗎?

回答

1

UIGestureRecognizers爲Cocos2D中絕對的工作,我親自使用過,你只需要通過將其添加到正確的觀點:

[[[CCDirector sharedDirector] openGLView] addGestureRecognizer:myGestureRecognizer]; 

關於你的觸動,我猜你使他們爲你工作現場在?

scene.isTouchEnabled = YES; 

在任何情況下,你不應該使用addTargetDelegate方法,看看here

+0

是'UIGestureRecognizers'工作在'CCSprite'上? [CCGestureRecognizers](https://github.com/jerrodputman/CCKit/tree/master/CCKit) – 0xDE4E15B 2012-03-01 23:15:45

+0

我不知道addTargetDelegate只適用於單觸式。謝謝! – Jenny 2012-03-02 13:56:14

+0

當我想擁有不同優先級的多個圖層時如何?目標委託似乎是有用... – Jenny 2012-03-02 14:02:07

1

添加self.isTouchEnabled = YES;到您的init

和手勢識別看着對方的回答

相關問題