如何缩放SpriteKit场景中的所有对象

时间:2016-08-17 12:18:16

标签: ios objective-c sprite-kit uigesturerecognizer skspritenode

我有一个SpriteKit场景(MyScene : SKScene<UIGestureRecognizerDelegate>),其中我放了4只动物(所有SKSpriteNode *sprite)。

我希望通过在背景上应用单个捏合动作(场景本身)来缩放所有4只动物,但它不起作用。我的意思是:场景的xScaleyScale得到更新,但里面的所有动物都没有,它们总是保持在相同的位置和相同的原始比例。

我通过将4只动物放入特定的SKSpriteNode* background而不是将它们直接放在场景中来解决这个问题,在这种情况下,如果我缩放backgroundbackground内的所有动物{1}}自动缩放,但我需要删除此背景,这不会发生我缩放原始场景。

我做错了什么?这里是我的代码

- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer
{
    if (recognizer.state == UIGestureRecognizerStateBegan)
    {
        CGPoint touchLocation = [recognizer locationInView:recognizer.view];
        touchLocation = [self convertPointFromView:touchLocation];
        [self selectNodeForTouch:touchLocation]; //here the "_selectedNode" is set to an animal or to the scene itself
        [recognizer setScale:_selectedNode.xScale];

    }
    else if (recognizer.state == UIGestureRecognizerStateChanged)
    {
        _selectedNode.xScale = recognizer.scale;
        _selectedNode.yScale = recognizer.scale;

    }
    else if (recognizer.state == UIGestureRecognizerStateEnded)
    {
        NSLog(@"pinch gesture ended");
    }

}

0 个答案:

没有答案