2013-09-25 10 views
7

Jak mogę sprawdzić, czy SKNode już wykonuje działanie przed uruchomieniem na nim akcji? Chcę być w stanie zrobić coś takiego ...sprawdzanie, czy SKNode działa SKAction

if (![mySprite isRunningActions]) { 
    [mySprite runAction:action]; 
} 

Jeśli nie ma zbudowany w sposób myślę o tworzeniu nowego BOOL własności do utrzymywania stanu działania.

Odpowiedz

11

Spójrz na użycie nazwanych akcji przy użyciu dowolnej z metod opartych na klawiszach SKAction. Zamiast tego uruchomiłbyś swoje działanie, używając nazwanego odpowiednika runAction:, który jest runAction:withKey:. Jeśli działanie z tym samym kluczem już działa, zostanie usunięte przed dodaniem nowego. Alternatywnie, użyj actionForKey:, aby zobaczyć, czy akcja już działa, tak jak próbujesz zrobić teraz w swoim kodzie, a następnie removeActionForKey:, aby ją usunąć lub obsłużyć w razie potrzeby.

+1

To jest lepsza odpowiedź, ponieważ można sprawdzić konkretną akcję, zamiast sprawdzać, czy sprite wykonuje jakąkolwiek akcję (oczywiście, jeśli znasz klucz do działania :) – Septronic

14

Przepraszamy za spóźnioną odpowiedź, ale możesz użyć metody sprite hasActions, aby sprawdzić, czy duszek aktualnie wykonuje jakieś akcje.

if (![mySprite hasActions]) 
{ 
    [mySprite runAction:action]; 
} 
Powiązane problemy