0

メインレイヤーから、スコアに応じて初期化されるCCSpriteの1つにスコアを渡そうとしています。これで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]) ) {
    ...
    }
}

CCSpriteTextureのないスコアを取得します。

その後、これで初期化すると:

//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 に答える