2011-09-21 7 views
0

cocos2d에서 멀티 터치를 사용하고 싶습니다. 어떻게해야합니까? 아래의 코드와 같은 각 터치 이벤트를 테스트하고 싶습니다. 도와주세요.멀티 터치 사용 방법 cocos2d

-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

UITouch *myTouch = [touches anyObject]; 
CGPoint location = [myTouch locationInView:[myTouch view]]; 
location = [[CCDirector sharedDirector] convertToGL:location]; 
b2Vec2 locationWorld = b2Vec2(location.x/PTM_RATIO, location.y/PTM_RATIO); 
CGSize screenSize = [CCDirector sharedDirector].winSize; 

if (locationWorld.x >= screenSize.width*2/5/PTM_RATIO && locationWorld.x <= screenSize.width*3.25/5/PTM_RATIO) { 
    cannonballTouch1 = 1; 
    float force = 6; 
    b2Vec2 direction = cannonballBody->GetWorldCenter() - cannonBody->GetWorldCenter(); 
    b2Vec2 iforce = b2Vec2(1.0f/direction.x * force, 1.0f/direction.y * force); 
    NSLog(@"%.2f", direction.y); 
    NSLog(@"%.2f", iforce.y); 
    b2Vec2 force1 = b2Vec2(0, iforce.y); 
    cannonballBody->ApplyLinearImpulse(force1, cannonballBody->GetPosition()); 
} 
if (locationWorld.x > screenSize.width*3.25/5/PTM_RATIO) { 
    cannonballTouch2 = 1; 
    float force = 6; 
    b2Vec2 direction = cannonballBody2->GetWorldCenter() - cannonBody2->GetWorldCenter(); 
    b2Vec2 iforce = b2Vec2(1.0f/direction.x * force, 1.0f/direction.y * force); 
    NSLog(@"%.2f", direction.y); 
    NSLog(@"%.2f", iforce.y); 
    b2Vec2 force1 = b2Vec2(0, iforce.y); 
    cannonballBody2->ApplyLinearImpulse(force1, cannonballBody2->GetPosition()); 
} 
} 

답변

0

이 페이지는 꽤 잘 말해줍니다.

http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html

은 먼저 응답자 클래스의 서브 클래스를 작성해야합니다, 멀티 터치 이벤트를 처리합니다.

사용자 정의보기 (UIView의 하위 클래스) 의 UIViewController의 서브 클래스 또는 그 UIKit 서브 클래스 의 하나의 UIImageView에 또는 UISlider 으로 UIKit보기 또는 컨트롤 클래스의 서브 클래스 :이 서브 클래스는 다음 중 하나가 될 수 UIApplication 또는 UIWindow의 서브 클래스 (드물기는하지만) 뷰 컨트롤러는 일반적으로 리스폰 더 체인을 통해 초기에 뷰로 전송 된 터치 이벤트를받습니다. 뷰가 터치 처리 메서드를 무시하지 않으면 해당 뷰에 전달됩니다.

멀티 터치 이벤트를 수신하는 하위 클래스의 경우 하위 클래스는 터치 이벤트 처리를위한 하나 이상의 UIResponder 메서드를 구현해야합니다 (아래 설명 참조). 또한보기가 투명하거나 숨겨지지 않아야하며보기의 userInteractionEnabled 속성이 기본값 인 YES로 설정되어야합니다.

다음 섹션에서는 터치 이벤트 처리 방법을 설명하고 공통 제스처를 처리하는 방법을 설명하고 복잡한 멀티 터치 이벤트 시퀀스를 처리하고 이벤트 전달을 논의하며 이벤트 처리 기술을 제안하는 응답자 개체의 예를 보여줍니다.