2013-04-16 1 views
0

Objective-C를 배우려고합니다. cocos2d로 iOS 용 간단한 애니메이션을 만드는 방법을 배우려고합니다.CCSprite가 보이지 않습니다.

이 튜토리얼을 사용하여 애니메이션 효과를 얻었지만 메인 클래스에서 코드를 분리하여 별도의 클래스에 넣고 싶습니다. (http://www.raywenderlich.com/32045/how-to-use-animations-and-sprite-sheets-in-cocos2d-2-x)

그래서 나는 CCNode를 (여기에 인터페이스가) 확장 애완 동물이라는 새로운 클래스를 만들어 :

그것은으로 초기화에서 초기화되는 CCSprite 객체가
@interface Pet : CCNode { 
    BOOL moving; 
    int touchCount; 
} 

@property (nonatomic, assign) CCAction *walkAction; 
@property (nonatomic, assign) CCAction *cuteAction; 
@property (nonatomic, assign) CCAction *moveAction; 
@property (nonatomic, assign) CCSprite *sprite; 

- (id) initPetWithName:(NSString *)name xPosition:(int)x yPosition:(int)y; 
- (BOOL) isTouchedByPoint:(CGPoint)point; 
- (void) moveToPoint:(CGPoint)point; 

@end 

:

self.sprite = [CCSprite spriteWithSpriteFrameName:[NSString stringWithFormat:@"%@_%d.png", name, 4]]; 

초기화에 오류가 없지만 화면에 나타나지 않습니다.

CCLayer 클래스는 초기화 방법이 있습니다

-(id) init { 
    if((self = [super init])) { 
     CGSize winSize = [[CCDirector sharedDirector] winSize]; 

     self.pet = [[Pet alloc] initPetWithName:@"Waffles" 
       xPosition:winSize.width/2 yPosition:winSize.height/2]; 
     [self addChild:self.pet]; 
     self.isTouchEnabled = YES; 
    } 
    return self; 
} 

답변

1

당신이 아이로 스프라이트를 추가하고 어디는 표시되지 않습니다. 그것일지도 모르죠?

나는 한 번 article that explains many potential causes for curiously absent nodes.

+0

내가 내 CCLayer에 마지막 코드에서 자식으로 애완 동물을 추가 썼다. 나 또한 스프라이트 시트의 자식이되도록 스프라이트를 추가했다. 누가 노드를 자식으로 추가해야하는지에 대한 지침이 있습니까? 감사! –

+0

사실, 나는 그것을 나타냈다! 나는 애완 동물을 CCLayer의 자식으로 추가하고 애완 동물의 자식으로 스프라이트를 추가해야했습니다. 고맙습니다! –