0

私の悪い英語でごめんなさい

私はインターネットで検索し、方法を見ましたが、何らかの理由でオブジェクトを追加していません。私がやりたいことは、パワーアップスプライトをレイヤーにロードし、それらを配列に追加することです。配列に基づいて、どのレイヤーをいつ別のレイヤーに表示するかを選択します。

ばかげた詳細だと確信していますが、何が理解できません。ローカル配列を作成し、シングルトンの代わりに使用すると機能します。

ゲームマネージャークラスを作りました

//header

@interface GameManager : NSObject {
}

@property (nonatomic,retain) NSMutableArray *powerUpsArray;

+(GameManager*)sharedGameManager;
@end

実装

@implementation GameManager

static GameManager* _sharedGameManager = nil;

@synthesize powerUpsArray=_powerUpsArray;

+(GameManager*)sharedGameManager {
@synchronized([GameManager class]) 
{
    if(!_sharedGameManager) 
        [[self alloc] init];
    return _sharedGameManager;
}
return nil;
}


-(id)init {
self = [super init];
if (self != nil) {
    self.powerUpsArray=[[NSMutableArray alloc]init];
}
return self;
}
@end

そして、ヘッダーをインポートし、レイヤーでinitメソッドで行います

[[GameManager sharedGameManager].powerUpsArray addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"bomb.png"]]];

バッチノードを作成し、フレームからフレームキャッシュを作成しましたが、理由はありますか?

4

1 に答える 1

0

試す...

if(!_sharedGameManager) 
    _sharedGameManager = [[self alloc] init];

そのまま、オブジェクトを作成していますが、それらで静的変数を更新していません。

于 2012-08-01T01:00:47.150 に答える