사용자가 왼쪽 또는 오른쪽으로 스 와이프하면 SKSpriteNode
을 회전하고 싶습니다. UIGestureRecognizer
을 사용할 수 있습니까? 아니면 다른 방법으로 해결할 수 있습니까?스 와이핑 할 때 SKSpriteNode를 적극적으로 회전 하시겠습니까?
0
A
답변
0
두 개의 UISwipeGestureRecognizer를 SKView에 추가하는 것이 가장 쉽습니다 (각 방향에 하나씩).
더 느린 손가락 움직임을 처리하려면 UIPanGestureRecognizer로 대체해야합니다. 장면 내에서
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는 회전하려는 노드의 이름입니다. 이 값은 이동하려는
SKSpriteNode
의name
속성으로 설정해야합니다.
답변 해 주셔서 감사합니다. :) 그리고 GestureRecognizer로 전화를 걸 때 SKSpriteNode를 어떻게 회전해야합니까? – appcodix