2013-09-25 4 views
7

SKNode에 조치가 실행되기 전에 해당 조치가 이미 실행 중인지 어떻게 확인할 수 있습니까? 에는 내가 작업 상태를 유지하기위한 새로운 BOOL 속성을 만드는 생각하고 방법으로 내장이없는 경우 내가SKNode가 SKAction을 실행하는지 확인

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

... 같은 것을 할 수 있어야합니다.

답변

11

SKAction 키 기반 방법 중 하나를 사용하여 명명 된 동작을 사용하십시오. 따라서 대신 runAction:withKey:runAction:에 해당하는 작업을 사용하여 작업을 실행하십시오. 동일한 키가있는 조치가이 L 실행중인 경우, 새 키가 추가되기 전에 제거됩니다. 또는 actionForKey:을 사용하여 코드에서 지금 수행하려는 동작이 실행 중인지 확인한 다음 removeActionForKey:을 사용하여 제거하거나 필요에 따라 처리하십시오.

+1

스프라이트가 어떤 조치를 취하고 있는지 확인하는 대신 특정 조치를 확인할 수 있으므로 더 좋은 대답입니다 (당연히 조치 키를 알고있는 경우). – Septronic

14

늦게 답변 드리지만 sprite 메소드 hasActions를 사용하여 스프라이트에서 현재 어떤 작업이 실행되고 있는지 확인할 수 있습니다.

if (![mySprite hasActions]) 
{ 
    [mySprite runAction:action]; 
} 
관련 문제