簡體   English   中英

嘗試添加已經具有父級的SKNode: <SKScene> 名稱:&#39;(null)&#39;幀:{{0,0},{1,1}}&#39;

[英]Attemped to add a SKNode which already has a parent: <SKScene> name:'(null)' frame:{{0, 0}, {1, 1}}'

我添加了聲音管理器(在游戲中播放聲音是單例),並遇到以下問題:

嘗試添加已經具有父級的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]

就在您破壞舊場景之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM