CCSprite没有显示出来

时间:2013-04-16 20:37:39

标签: iphone ios cocos2d-iphone ccsprite

我正在尝试学习Objective-C以及如何使用cocos2d为iOS做一些简单的动画。

我正在使用本教程并使动画工作,但我想从主类中取出代码并将其放入一个单独的类中。 (http://www.raywenderlich.com/32045/how-to-use-animations-and-sprite-sheets-in-cocos2d-2-x

所以我创建了一个名为Pet的新类,它扩展了CCNode(这里是接口):

@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

它有一个CCSprite对象,在init中初始化为:

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

初始化没有错误,但它没有显示在屏幕上。

CCLayer类在其init方法中有这个:

-(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 个答案:

答案 0 :(得分:1)

我不知道你在哪里添加精灵作为孩子。可能是吗?

我曾写过article that explains many potential causes for curiously absent nodes.