2015-09-16 53 views
1

我試圖在我的第一個cocossharp遊戲中寫入初始屏幕,因爲在android應用程序中寫入了初始屏幕。然而,它顯示一個黑屏,然後直接轉到gameplayscene。那麼我應該改變什麼?非常感謝你!初始屏幕不適用於Cocossharp遊戲

public class SplashScene : CCScene 
{ 
    CCSprite splashImage1; 
    CCSprite splashImage2; 
    CCLayer splashLayer; 

    public SplashScene (CCWindow mainWindow) : base(mainWindow) 
    { 
     splashLayer = new CCLayer(); 
     this.AddChild (splashLayer); 

     splashImage1 = new CCSprite ("Splash1"); 
     splashImage1.Position = ContentSize.Center; 
     splashImage1.IsAntialiased = false; 

     splashImage2 = new CCSprite ("Splash2"); 
     splashImage2.Position = ContentSize.Center; 
     splashImage2.IsAntialiased = false; 
    } 

    public void PerformSplash() 
    { 
     splashLayer.AddChild (splashImage1); 
     Thread.Sleep(3000); 
     splashLayer.RemoveChild(splashImage1); 

     splashLayer.AddChild (splashImage2); 
     Thread.Sleep(2000); 
     splashLayer.RemoveChild (splashImage2); 

     GameAppDelegate.GoToGameScene(); 
    } 
} 

回答

1

遊戲循環必須運行,以及任何遊戲框架來顯示和更新。調用Thread.Sleep會暫停執行該線程。

如果你想顯示的間隔最好的辦法是簡單地創建飛濺的場景,你是一個閃屏,然後安排一個動作序列

像這樣的事情會等待2秒,然後取出splashLayer並轉到遊戲場景。

auto seq = Sequence::create(
    DelayTime::create(2.0), 
    CallFunc::create([=](){ 
    splashLayer->removeFromParent(); 
    GameAppDelegate.GoToGameScene(); 
    }), 
    nullptr); 
runAction(seq);