ios - ¿Es posible terminar una acción intermedia de SKAction?
objective-c sprite-kit (1)
Tengo una subclase de SKSpriteNode (monsterNode). Se ejecuta automáticamente alrededor de la pantalla usando vectores para seguir al jugador. Actualmente estoy usando la siguiente acción para hacerla correr:
SKAction *actionMove = [SKAction moveTo:actualDistance duration:time];
[self runAction:actionMove completion:^ {
_currentState = SVGMonsterStateIdle;
}];
Me pregunto si es posible hacerlo así que monsterNode realmente DETIENE ejecutando la acción si llega al límite de la pantalla del dispositivo iOS. Actualmente tengo límites de SKSpriteNode en los bordes de la pantalla, vinculado con un delegado de contacto para notificar si el monstruo y las paredes se ponen en contacto. Sin embargo, eso no significa nada si no puedo realmente detener la acción actionMove del monstruo para que no se complete. El monstruo necesita detenerse en los límites de la pantalla. Si no es posible detener una ejecución intermedia de SKAction, ¿hay una manera indirecta de hacerlo?
Mire el archivo de encabezado SKNode.h
: tiene dos funciones enumeradas:
- (void)removeActionForKey:(NSString *)key;
- (void)removeAllActions;
Este último funcionará: [monsterNode removeAllActions];