我添加了声音管理器(在游戏中播放声音是单例),并遇到以下问题:
尝试添加已经具有父级的SKNode:名称:'(null)'帧:{{0,0},{1,1}}'
@property (strong, nonatomic) VSSoundSystem *soundSystem;
在-我场景的(id)initWithSize:(CGSize)大小中:
self.soundSystem = [VSSoundSystem sharedSystem];
[self addChild:self.soundSystem];
我需要将其添加为儿童,因为我需要进行跑步
VSSoundManager初始化:
+ (id)sharedSystem {
static VSSoundSystem *sharedSystem = nil;
@synchronized(self) {
if (sharedSystem == nil)
sharedSystem = [[self alloc] init];
}
return sharedSystem;
}
它工作正常,但在二级加载时崩溃
最佳答案
您正在使用什么框架? cocos2d?
我的猜测是,当加载第二个关卡时,将单例再次添加到另一个场景。
由于这是一个单例,它可能仍将旧的,已破坏的场景作为父级。
您可以尝试如下操作:
[self.soundSystem removeFromParent]
要么
[self.soundSystem removeFromParentAndCleanup:NO]
就在您破坏旧场景之前。
关于ios - 尝试添加已经具有父级的SKNode:<SKScene>名称:'(null)'帧:{{0,0},{1,1}}',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25412096/