我确信这相当简单,但我一直在努力寻找在 SpriteKit 中实现这种效果的最佳方法。我有一个激光节点,我想每隔 x # 秒关闭和打开它。我尝试设置 SKActions 来关闭声音并淡出图像,但我不确定如何让节点知道它在 SKAction 中当前关闭或打开的天气。我想当我的 runAction 中的每个 SKAction 完成时,我正在寻找的是某种类型的回调。这样我就可以设置一个标志来说明激光是打开还是关闭,并在发生碰撞时使用它,这样我就知道如何处理它。我也不确定这是否是解决此问题的最佳方法。谢谢你的帮助。
问问题
556 次
1 回答
0
对于任何感兴趣的人来说,我所缺少的是 runBlocks。ruNBlacks 是触发一段代码的 SKAction。我在激光打开之前和关闭之前添加了运行块,以便它可以更新其状态。看起来这会很好用!
SKAction *soundAction = [SKAction playSoundFileNamed:@"Laser.m4a" waitForCompletion:NO];
SKAction *fadeInAction = [SKAction fadeInWithDuration: .5];
SKAction *firstWaitAction = [SKAction waitForDuration:1.5];
SKAction *fadeOutAction = [SKAction fadeOutWithDuration: .5];
SKAction *secondWait1Action = [SKAction waitForDuration:2];
SKAction *laserAnimAction = [SKAction sequence:@[
[SKAction runBlock:^
{
self.isOn=YES;
}],
soundAction,
fadeInAction,
firstWaitAction,
[SKAction runBlock:^
{
self.isOn=NO;
}], fadeOutAction,
secondWaitAction
]];
于 2014-03-15T18:55:57.887 回答