예제 #1
0
        public static void Update()
        {
            if (screenManager.IsTransitioning())
            {
                screenManager.Update(gameScene);

                // Transition Finished, load relevant data
                if (!screenManager.IsTransitioning())
                {
                    if (screenManager.GetScreen() == Screens.Game)
                    {
                        SetupGame();
                        soundManager.PlayBGM();
                    }
                    else if (screenManager.GetScreen() == Screens.GameOver)
                    {
                        gameScene.Camera2D.SetViewY(new Vector2(0.0f, Director.Instance.GL.Context.GetViewport().Height *0.5f),
                                                    new Vector2((Director.Instance.GL.Context.GetViewport().Width *0.5f), Director.Instance.GL.Context.GetViewport().Height *0.5f));
                    }
                }
            }
            else
            {
                UpdateTouchData();

                switch (screenManager.GetScreen())
                {
                case Screens.Splash:
                    screenManager.ChangeScreenTo(Screens.Menu);
                    break;

                case Screens.Game:
                    if (!tutorialManager.HasPopUp())
                    {
                        GameUpdate();
                    }
                    else
                    {
                        UpdateTouchData();
                    }
                    break;

                case Screens.GameOver:
                    Vector2 touchPos = Input2.Touch00.Pos;

                    if (touchPos.X >= 0)
                    {
                        touchPos = new Vector2((touchPos.X * 450) + 450, (touchPos.Y * 272) + 272);
                    }
                    else
                    {
                        touchPos = new Vector2(((touchPos.X + 1) * 450), ((touchPos.Y + 1) * 272));
                    }
                    Bounds2 touchBox = new Bounds2(touchPos, touchPos);
                    if (touchBox.Overlaps(rSprite.GetlContentLocalBounds()))
                    {
                        screenManager.ChangeScreenTo(Screens.Menu);
                        gameScene.RemoveChild(rSprite, false);
                    }

                    break;
                }
            }
        }