0

我正在尝试学习 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;
}
4

1 回答 1

1

我看不到您将精灵添加为孩子的位置。可能是这样吗?

我曾经写过一篇文章,解释了奇怪地缺失节点的许多潜在原因。

于 2013-04-16T21:36:46.157 回答