我有以下内容:
- 一个名为“_background”的背景精灵
- 3 个精灵“C4”、“D5”和“Hj”
三个精灵分别添加到背景上。然后,我希望通过双击将它们同时拖动到屏幕上的另一个位置,同时它们保持相同的顺序和位置。
我几乎可以使用的唯一方法是使用以下代码:
- (void)tap2TouchesGesture:(UITapGestureRecognizer *)sender {
SKNode *removeNode = [_background childNodeWithName:@"C4"];
CGPoint aPos = removeNode.position;
[removeNode removeFromParent];
SKSpriteNode *topNode = [SKSpriteNode spriteNodeWithImageNamed:@"C4"];
topNode.position = aPos;
topNode.zPosition = 100;
topNode.name = @"C4";
[_background addChild:topNode];
removeNode = [_background childNodeWithName:@"D5"];
[removeNode removeFromParent];
SKSpriteNode *vv = [SKSpriteNode spriteNodeWithImageNamed:@"D5"];
vv.position = CGPointMake(-10, -10);
vv.zPosition = -10;
vv.userInteractionEnabled = NO; // just testing
vv.name = @"D5";
[topNode addChild:vv];
removeNode = [_background childNodeWithName:@"Hj"];
[removeNode removeFromParent];
vv = [SKSpriteNode spriteNodeWithImageNamed:@"Hj"];
vv.position = CGPointMake(-20, -20);
vv.zPosition = -50;
vv.userInteractionEnabled = NO; // just testing
vv.name = @"Hj";
[topNode addChild:vv];
}
处理完上述代码后,我可以移动精灵包,但当前的问题是父级 C4 似乎不在顶部。选择 C4 的唯一方法是单击任何其他精灵之外的部分,不包括 _background。
我猜这不是执行此操作的最佳方法,因此我想寻求一些有关如何正确执行此操作的帮助。此外,我可以通过单击整个精灵来选择 C4。