2014-03-31 1 views
0

나는 cocos2d로 게임을 개발 중이다. 당연히 메뉴 버튼이 있습니다. 버튼을 클릭하면 "void"가 호출되어 현재 동작을 모두 중지하고 [[CCDirector sharedDirector] pause];으로 메뉴를 소개합니다.단일 스프라이트를 cocos2d에서 손질하지 못하게 만드는 방법은 무엇입니까?

또한 스프라이트가있는 경우 해당 스프라이트를 터치하고 지침이있는 경우 (일부 MoveTo 동작 만 해당). 일시 중지 중에 스프라이트를 클릭하면 실수로 나타납니다 (제 생각에 그 명령 때문에).

따라서 게임 일시 중지 중에는 스프라이트가 건드리지 않아야한다고 가정합니다. 하나의 스프라이트를 건드릴 수 없도록 만드는 방법은 무엇입니까? 그런 실수를 피하는 더 좋은 방법이 있습니까?

답변

0

일단 [[CCDirector sharedDirector] pause]를 사용하면; 그러면 전체 cocos2d가 일시 중지됩니다. 따라서 터치 콜백 내부에 cocos2d 액션을 작성했거나 스프라이트를 터치 한 것처럼 움직이면 무언가를 작성하면 충돌이 발생할 수 있습니다. 대신 장면에서 모든 작업 및 스케줄러를 중지하고 더 진행하십시오. 아래 모든 행동과 스케줄러를 중지 할 수 있습니다 : 당신은 지금 당신이 스프라이트에 모든 작업을 수행 할 수있는이 방법을 일시 정지 한 번 완료되면

 [self pauseSchedulerAndActions];//This will pause all the scheduler and actions running on current scene. Note this will not unschedule the update(). 

 [self unscheduleUpdate]; //This will stop the cocos2d update method 

뿐만 아니라 할 - 업데이트 방법을 중지하려면 당신은 다음과 같이 다시 시작할 수 있습니다 :

 [self resumeSchedulerAndActions]; 
     [self scheduleUpdate]; 
+0

은 ..... 나를 위해 코드 무엇 @zszen – zszen

+0

와 당신이 행동을 기대 작동하지 않습니다 – SaffronState

관련 문제