所以我正在將我的cocos2d遊戲移植到Sprite Kit。Sprite Kit:如何在運行場景上添加場景
在cocos2d我有兩種情況,我會覆蓋整個遊戲場景的菜單。第一種情況是暫停,第二種情況是遊戲結束。
在cocos2d的遊戲結束我做
CCScene *runningScene = [[CCDirector sharedDirector] runningScene];
WaveEndLayer *waveEndedLayer = [[WaveEndLayer alloc] initWithWon:didWin];
[waveEndedLayer setOpacity:0];
[runningScene addChild:waveEndedLayer z:kZHUD];
CCFadeTo *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:255];
[waveEndedLayer runAction:fadeIn];
的WaveEndLayer類有一些關於它的CCMenuItems,和Cocos2d處理傳遞觸摸事件的處理程序。
在sprite套件中做這樣的事情的正確方法是什麼?
我的班級遊戲應該繼承什麼(SKNode
,SKView
,SKScene
)?
我試過使用SKScene
,但是你不能有2個運行的場景(或者我錯了嗎?),所以我把場景作爲一個孩子添加到主遊戲場景中。但觸摸事件只在主遊戲場景中被調用,而不是在場景中的遊戲。所以,我想是這樣
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
if (_gameOver)
{
[_gameOverScene touchAtLocation:location];
}
}
但爲了簡單起見,當我重新啓動的水平,我只是推的遊戲場景再次,它不喜歡的,因爲它是我不是重置所有的狀態技術上還在運行。
無論如何,疊加菜單需要觸摸事件的正確方法是什麼?
嘗試簡單地將遊戲添加爲SKNode而不是SKScene,並將setUsserInteractionEnabled添加到YES。 –
與狗頭人套件你得到pushScene和popScene方法就像在cocos2d – LearnCocos2D