runAction:onChildWithName: 不工作

runAction:onChildWithName: don't work

我正在学习一些关于 SKAction class 的知识,我正在尝试使用方法 运行Action:onChildWithName:,为此我正在尝试此代码:

SKSpriteNode *sprite0 = [SKSpriteNode spriteNodeWithImageNamed:@"sprite1.png"];

sprite0.position = CGPointMake(0, 0);
sprite0.name = @"spriteMegamen";
[self addChild:sprite0];
SKAction *action2 = [SKAction moveTo:CGPointMake(120, 120) duration:5];
[SKAction runAction:action2 onChildWithName:@"spriteMegamen"];

但是代码 onChildWithName 无法识别我的 sprite 名称,也没有 运行 动作,为什么?

该方法是 SKAction 的另一个构造方法。也就是说,它所做的只是创建另一个您可以在节点上 运行 的操作。

所以你应该...

SKAction *runOnChildAction = [SKAction runAction:action2 onChildWithName:@"SpriteMegamen"];
[self runAction:runOnChildAction];

请注意。

我完全是通过阅读 SKAction 的文档才发现这一切的。您应该始终查阅文档。这就是它的用途,也是最好的学习方式。