2009-10-19 2 views
0

적인 Cocos2D에서 개체를 다시 초기화 할 수 있으며,그것을 위해 내가 sprite.I의 곤충 아이라는 클래스가 GameLayer에 그 클래스의 인스턴스를 생성 한 후 사용 으로 초기화 한 한

insect *bgg = [insect spriteWithFile:@"bird2a.gif"];

그럼 객체를 다시 초기화 내 질문이 가능 crashes.Now

*bgg = [insect spriteWithFile:@"2.gif"];

하지만 내 프로그램을 사용하여 이미지를 변경하는 타이머 (10초)로 설정하거나 그 불변 ??

나는 내가 그것을 터치를 감지 할 수 GameLayer에이 기능을 사용할 때 GameLayer.But에 을 선언 내 곤충 클래스는 'BGG'객체에 터치를 감지 할 수 없습니다에

- (BOOL) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{
UITouch *touch = [touches anyObject];
CGPoint point2 = [touch locationInView:[touch view]];

CGPoint cpoint=[[Director sharedDirector] convertCoordinate:point2]; 
NSLog(@"In touch began"); 


}

를 사용하는 또 다른 질문을 가지고있다.

내 접근 방식에 문제가 있습니까? Plz 누군가 설명합니다.

답장을 보내려면 고맙습니다.

답변

0

오타가있어 프로그램이 충돌합니다. '* bgg'에서 '*'를 제거하십시오. 즉, 포인터를 역 참조 한 다음 역 참조 된 포인터에 새 객체를 적용하려고합니다. 당신은 그러나, 그냥 이미지를 변경하는 완전히 새로운 스프라이트를 만들 잔인한

bgg = [insect spriteWithFile:@"2.gif"];

를 원한다. SpriteTextureNode의 하위 클래스이므로 TextureNode의 texture 속성을 사용하여 Sprite에 다른 이미지를 제공하십시오.

 
Texture2D *newImage = [[TextureMgr sharedTextureMgr] addImage:@"2.gif"]; 
bgg.texture = newImage;