gpt4 book ai didi

ios - 从子 SKSpriteNode 添加 SKSpriteNode 到 SKScene

转载 作者:行者123 更新时间:2023-11-29 12:40:56 26 4
gpt4 key购买 nike

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

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

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];

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

 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 节点,但是如何从该方法获得完成通知。

最佳答案

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

在 runAction 之后使用完成 block 。

[self runAction:sequence completion:^{
//Add relevant code here.
}];

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

SKAction *actionBlock = [SKAction runBlock:^{
//Add relevant code here.
}];
SKAction *sequence = [SKAction sequence : @[moveDown,group, [SKAction removeFromParent], actionBlock]];

关于ios - 从子 SKSpriteNode 添加 SKSpriteNode 到 SKScene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24948486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com