Я уверен, что это довольно просто, но я долго пытался найти лучший способ реализовать этот эффект в SpriteKit. У меня есть лазерный узел, который я хочу выключать и включать каждые x # секунд. Я пытался настроить SKActions для отключения звука и постепенного исчезновения изображения, но я не уверен, как заставить узел знать о погоде, в которой он сейчас выключен или включен в SKAction. Я предполагаю, что я ищу какой-то тип обратного вызова, когда каждый SKAction в моем runAction завершается. Таким образом, я мог бы установить флаг, чтобы сказать, что лазер включен или выключен, и использовать его, когда происходит столкновение, чтобы я знал, как с этим справиться. Я не уверен, что это лучший способ сделать это. Спасибо за вашу помощь.
SpriteKit выключает/включает узел каждые x секунд и прячет, когда выключен
Ответы (1)
Для всех, кому интересно, чего мне не хватало, так это runBlocks. ruNBlacks — это SKActions, запускающие фрагмент кода. Я добавил блоки запуска перед включением и выключением лазера, чтобы он мог обновлять свой статус. Похоже, это будет отлично работать!
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
]];
person
DaveB
schedule
15.03.2014