2012-08-09 61 views
0

我有一個場景,其中包含一個GamePlay圖層和一個包含我的暫停菜單的HUDLayer。我想知道是否有人在場景中暫停一層,這樣我可以暫停GamePlay層,但仍然可以訪問並在HUDLayer中的暫停菜單中單擊。我試過使用如何暫停cocos2d 2.0中的圖層

[[CCDirector sharedDirector] pause]; 

但暫停一切,並不接受我的暫停菜單中的觸摸。如果無法暫停單個圖層,將暫停菜單合併到遊戲中的最佳方式是什麼?謝謝。

P.S.我使用的是cocos2d 2.0的最新版本的cocos2d。

回答

0

This教程應該有所幫助。 但基本上你想要做的是不計劃你的場景,然後在簡歷上重新安排它。 這是我在HUD層做的。

-(void)pause:(id)sender 
{ 
    if(paused) 
    { 
     [gamescene scheduleUpdate]; 
    } 
    else { 
     [gamescene unscheduleUpdate]; 
    } 
    paused =!paused; 
} 
+0

我沒有使用Box2D,所以我沒有打勾方法。我應該創建一個還是不是我應該做什麼?謝謝 – sbru 2012-08-09 15:24:44

+0

你有沒有類似的方法?如果不是,你如何進行遊戲? – m1sk 2012-08-09 17:41:51

+0

我每0.75秒就以init方法調用gameLogic。 – sbru 2012-08-09 17:49:08

-1

您不應該「暫停」所需的圖層,除非我遺漏了某些東西。爲什麼你不能在停止層顯示時禁用除暫停圖層之外的其他所有內容?這似乎是你想要的最終結果?

+1

如果它在該圖層上運行的動畫會怎麼樣?而不是迴應觸摸? – 2012-08-10 15:50:31

+1

你有幾個選項。您可以將所有正在運行的動畫的速度設置爲0,以有效地使用CCSpeed暫停它們,然後在您暫停時將速度設置爲1。請參閱CCSpeed上的cocos2d文檔,網址爲http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:actions_ease?s[]=ccspeed#speed_action,或者您可以一起停止動畫,然後再次啓動它們。 – 2012-08-10 16:01:44

+0

@JamesWebster是正確的。我在我的遊戲層上有動畫,我想暫停,既暫停觸摸動畫,但我想保持暫停層上的觸摸和動畫活動,以便我可以與它交互。 – sbru 2012-08-10 17:22:59