首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从子SKSpriteNode向SKScene添加SKSpriteNode

从子SKSpriteNode向SKScene添加SKSpriteNode
EN

Stack Overflow用户
提问于 2014-07-25 05:13:05
回答 1查看 762关注 0票数 1

我有一个SKScene,在这里我要添加一个SKSpriteNode。我已经子类SKSpriteNode类来创建这个节点。在子类中,我在sprite上定义了某些SKActions。我想要的是,当运行在这个sprite上的SKAction序列结束时,我在场景中添加一个新的sprite节点。这怎么可能。以下是我的代码:

我在skspritenode子类(TEMissileNode)上运行的序列代码:-

代码语言:javascript
复制
SKAction *moveDown = [SKAction moveToY:self.position.y - 20 duration:0.2];

SKAction *animation = [SKAction animateWithTextures:textures timePerFrame:time/7];

SKAction *moveMissileProjectile = [SKAction moveTo:pointoffScreen duration: time];

SKAction *group = [SKAction group:@[animation, moveMissileProjectile]];

SKAction *sequence = [SKAction sequence : @[moveDown,group, [SKAction removeFromParent]]];

[self runAction:sequence];

在主场景中,我调用执行这些操作的方法。

代码语言:javascript
复制
 TEMissileNode *missile = [TEMissileNode missileAtPoint: CGPointMake(copter.position.x + copter.size.width/2, copter.position.y - 20)
                                                     Type:TEMissileTypeA];



    [self addChild:missile];
    [missile moveTowardsPosition:position];

我想要的是在完成方法(moveTowardsPosition:position)之后,我向场景添加另一个子sprite节点,但是如何从该方法获得完成通知。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-25 06:19:02

有两种方法可以在操作完成后调用代码。

在runAction之后使用完成块。

代码语言:javascript
复制
[self runAction:sequence completion:^{
    //Add relevant code here.
}];

或者,添加另一个块以在序列末尾执行。

代码语言:javascript
复制
SKAction *actionBlock = [SKAction runBlock:^{
    //Add relevant code here.
}];
SKAction *sequence = [SKAction sequence : @[moveDown,group, [SKAction removeFromParent], actionBlock]];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24948486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档