2011-02-18 2 views
2

서브 클래스가 CCNode 인 클래스 안에 -update:(ccTime)dt 메서드를 예약했습니다. 또한 서브 클래스가 CCNode이 아니고 -update:(ccTime)dt 메서드가있는 많은 동작 개체가 있습니다. 여기 내 CCNode의 내부의의 update 방법 :Cocos2d 업데이트 : (ccTime) dt가 망가진 값

-(void)update:(ccTime)dt{ 
    for(Behavior *currentBehavior in behaviors){ 
     [currentBehavior update:dt]; 
    } 
} 

내가 내 CCNode에 전달 된 dtNSLog 때의 update을 정상 값 (0.116699, 0.162726)를 출력합니다. 그러나, NSLogdt 값이개의 메서드 내부에서 발생하면 인쇄 된 숫자가 갑자기 정말 갑자기 엉망이됩니다 (0.000, 36893488147419103232, -2.000). 가장 이상한 일입니다. 디버깅 할 때 첫 번째로 dt 값이 정상임을 확인한 다음 동작의 update 내부로 들어가서 값이 갑자기 무언가로 변경됩니다. 무슨 일이야?

답변

0

알아 냈습니다. 내 행동 클래스의 .m 파일에 -update:(ccTime)dt을 가지고 있지 않았고, 제 이론은 메서드 선택기를 찾는 데 시간이 더 걸렸기 때문에 ccTime을 망쳤습니다.

+0

이것은 전혀 이해가되지 않습니다. –