繁体   English   中英

刷卡时主动旋转SKSpriteNode吗?

[英]Actively rotate a SKSpriteNode when swiping?

如果用户向左或向右滑动,我想旋转SKSpriteNode 我可以使用UIGestureRecognizer还是有其他解决方法?

最简单的方法是将两个UISwipeGestureRecognizer添加到SKView(每个方向一个)。

如果要处理更慢的手指运动,则需要用UIPanGestureRecognizer代替它们。

在您的场景中,像这样实现didMoveToView:(SKView*)view

- (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]];
    }];
}
  • 该节点必须设置为场景的子级。
  • 这里的nodeIdentifier将是您要旋转的节点的名称。 这应该设置为您要移动的SKSpriteNodename属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM