2014-06-18 3 views

답변

0

두 개의 UISwipeGestureRecognizer를 SKView에 추가하는 것이 가장 쉽습니다 (각 방향에 하나씩).

더 느린 손가락 움직임을 처리하려면 UIPanGestureRecognizer로 대체해야합니다. 장면 내에서

+0

답변 해 주셔서 감사합니다. :) 그리고 GestureRecognizer로 전화를 걸 때 SKSpriteNode를 어떻게 회전해야합니까? – appcodix

0

, 노드가 장면의 자식으로 설정해야합니다 그래서

- (void)didMoveToView:(SKView *)view { 
    self.leftSwipeRecognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(leftSwipe)]; 
    self.leftSwipeRecognizer.direction = UISwipeGestureRecognizerDirectionLeft; 
    [view addGestureRecognizer:self.leftSwipeRecognizer]; 

    self.rightSwipeRecognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(rightSwipe)]; 
    self.rightSwipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight; 
    [view addGestureRecognizer:self.rightSwipeRecognizer]; 
} 

- (void)rightSwipe { 

    //whatever angle and duration you need here (angle in radians) 
    NSTimeInterval duration = 0; 
    CGFloat angle = 0; 

    [self enumerateChildNodesWithName:nodeIdentifier usingBlock:^(SKNode *node, BOOL *stop) { 
     [node runAction:[SKAction rotateByAngle:angle duration:duration]]; 
    }]; 
} 
  • 같은 didMoveToView:(SKView*)view를 구현합니다.
  • 여기서 nodeIdentifier는 회전하려는 노드의 이름입니다. 이 값은 이동하려는 SKSpriteNodename 속성으로 설정해야합니다.
+0

대단히 감사합니다 !!! 유일한 문제는 노드가 자신의 축에서 회전하지 않고 사용자가 스 와이프하여 실시간으로 회전하지 않는다는 것입니다. – appcodix

+0

또 다른 접근법은 SKTextureAtlas를 통해 스프라이트에 애니메이션을 적용한 다음 SKAction에서 클래스 메서드 인 animateWithTextures를 사용하는 것입니다. 지속: – BenJammin