0

我正在尝试将分数从我的主层传递到我的 CCSprite 之一,该 CCSprite 根据所述分数进行初始化。当我用这个初始化我的 CCSprite 时:

//Main Layer
Platform *platform = [[Platform alloc] initWithSpriteFrame:[[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:@"platform.png"] withScore:score];

//CCSprite Layer
-(id) initWithSpriteFrame:(CCSpriteFrame*)spriteFrame withScore:(int)initScore {
    if( (self=[super init]) ) {
    ...
    }
}

我得到一个没有 CCSprite 纹理的分数;

随后,当我用这个初始化时:

//Main Layer
Platform *platform = [[Platform alloc]initWithSpriteFrame:[[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:@"platform.png"]];
 [platform setScore:score];

//CCSprite Layer
@property (readwrite) int score;
@synthesize score;

-(id) init {
    if( (self=[super init]) ) {
    ...
    }
}

我得到一个没有分数的 CCSprite 纹理(它是 0)。男人要做什么?

4

1 回答 1

0

您需要将精灵帧传递给 super 所以在您的第一个代码示例中将其更改为这个。

//CCSprite Layer
-(id) initWithSpriteFrame:(CCSpriteFrame*)spriteFrame withScore:(int)initScore {
    if( (self=[super initWithSpriteFrame:spriteFrame]) ) {
      ...
    }

    return self; //Make sure to return self!
}
于 2012-09-19T00:53:23.380 回答