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