2012-01-08 4 views
0

안녕하세요 현재 나는이 같은 CCMenuItemImage의 현재 이미지를 확인하려고 :CCMenuItemImage의 현재 이미지를 확인 하시겠습니까?

if (ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"]) { 

을하지만 문제는,이 경우 문은 절대 호출되지됩니다. CCMenuItemImage의 일반 이미지를 init 메서드에서 Image1.png로 설정하기는하지만.

다른 방법으로이 작업을 수행해야합니까?

감사합니다.

답변

2

이 코드는 사실이 결코 :

ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"] 

이유는 당신이 CCSprite의 새로운 인스턴스를 생성하는 것입니다. 이것은 normalImage에 저장된 스프라이트와는 다른 스프라이트가되어 두 포인터가 다른 메모리 주소를 가리 키므로 비교가 실패합니다.

말할 필요도없이이 코드 줄이 실행될 때마다 새 CCSprite가 만들어지고 곧 그 이후에 해제되어 CPU주기가 낭비됩니다. 이 문제를 해결하는 적절한 방법은 태그 속성을 사용하는 것입니다.

ipodButton.normalImage.tag = 10; 
if (ipodButton.normalImage.tag == 10) { … } 
관련 문제