Началният екран не работи за играта Cocossharp

Опитвам се да напиша начален екран в първата си игра на cocossharp като начален екран в приложение за Android. Той обаче показва черен екран и след това директно преминава към игровата сцена. И така, какво трябва да променя? Благодаря ти много!

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 ();
    }
}

person Coroner_Rex    schedule 16.09.2015    source източник


Отговори (1)


Цикълът на играта трябва да работи, за да може всяка игрова рамка да се показва и актуализира. Извикванията към Thread.Sleep поставят на пауза изпълнението на нишката.

Ако искате да покажете начален екран за интервал, най-добрият начин би бил просто да създадете началната сцена такава, каквато сте, и след това да планирате последователност от действия

Нещо подобно ще изчака 2 секунди, след което ще премахне splashLayer и ще премине към сцената на играта.

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