0
嘿夥計我一直在努力如下。我得到2層,一個用於控制,另一個用於遊戲。問題在於,當我從控制圖層中重新啓動一個函數以重新啓動遊戲時,遊戲被阻塞(遊戲的場景刷新並顯示,但無法控制)。不知道問題出在哪裏。刷新cocos2d的遊戲場景
//restart function from input layer
......
-(id) init
{
if ((self = [super init]))
{......}
return self;
}
......
-(void)restart
{
GameScene* game = [GameScene sharedGameScene];
[game restartScene];
}
//gameLayer
......
static GameScene* instanceOfGameScene;
@implementation GameScene
+(GameScene*) sharedGameScene
{
if(instanceOfGameScene == nil)
instanceOfGameScene = [[self alloc]init];
return instanceOfGameScene;
}
+(id) scene
{
CCScene* scene = [CCScene node];
GameScene* layer = [GameScene node];
[scene addChild:layer z:0];
InputLayer* inputLayer = [InputLayer node];
[scene addChild:inputLayer z:1];
return scene;
}
-(void) restartScene
{
CCScene * newScene = [GameScene scene];
[[CCDirector sharedDirector] replaceScene:\
[CCTransitionFade transitionWithDuration:0.7f scene:newScene]];
}
......
哦,Sry基因爲我的錯誤類型。我已經更改了上面的代碼。它應該是'[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.7f scene:newScene]]'。 – user3201493
好吧,那麼也許你要麼不斷地調用restartScene(將解釋「陷入困境」的問題)或前一幕沒有dealloc或應用程序簡單地墜毀,但由於某種原因Xcode沒有進入前臺顯示錯誤 – LearnCocos2D
我想通了遊戲玩家不斷調用它的init()函數。來自gamelayer的instanceOfGameScene以某種方式變爲空,但我不知道爲什麼。當我把所有東西都放到一個圖層中時,一切正常,但我不認爲這是推薦的。 – user3201493