2012-07-31 23 views
0

对不起我的英文不好的cocos2d sigleton阵列不加入对象

我搜索在互联网上,我看到了如何但由于某种原因没有添加对象; 我想要做的就是加载一个图层我的电源精灵并将它们添加到一个数组,并基于数组我将选择显示哪些图层以及何时显示在不同的图层上。

我相信它是一个愚蠢的细节,但我不明白什么。 如果我创建一个本地数组而不是使用单例正在工作。

我做了一个游戏管理器类

//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"]]]; 

我创建batchnode和我从框架做了framcache,有什么想法为什么?

回答

0

的Try ...

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

正因为如此,你正在创建对象,但不与他们更新您的静态变量。

+0

谢谢,我知道是愚蠢的东西 – Haris 2012-08-01 01:22:15