0

Objective-C と、cocos2d を使用して iOS 用の簡単なアニメーションを作成する方法を学習しようとしています。

私はこのチュートリアルを使用していて、アニメーションを機能させましたが、コードをメイン クラスから取り出して、別のクラスに入れたいと思いました。( http://www.raywenderlich.com/32045/how-to-use-animations-and-sprite-sheets-in-cocos2d-2-x )

そこで、CCNode を拡張する Pet という名前の新しいクラスを作成しました (ここにインターフェイスがあります)。

@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

I don't see where you're adding the sprite as child. Might that be it?

I once wrote an article that explains many potential causes for curiously absent nodes.

于 2013-04-16T21:36:46.157 に答える