我有一个SpriteKit场景(MyScene : SKScene<UIGestureRecognizerDelegate>
),其中我放了4只动物(所有SKSpriteNode *sprite
)。
我希望通过在背景上应用单个捏合动作(场景本身)来缩放所有4只动物,但它不起作用。我的意思是:场景的xScale
和yScale
得到更新,但里面的所有动物都没有,它们总是保持在相同的位置和相同的原始比例。
我通过将4只动物放入特定的SKSpriteNode* background
而不是将它们直接放在场景中来解决这个问题,在这种情况下,如果我缩放background
,background
内的所有动物{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");
}
}