cococos 2 d-xnaゲームで後退キーをどのように制御して目的的なジャンプを実現するか

5705 ワード

実際には,wpの後退「シーン」を異なるゲームシーンに基づいて決定する必要がある場合がある.
まず定数クラスを構築し、異なるページの代表値をマークするために定数を置くことができます.
例:
class GameMain

    {

        public static int CurrentScreen;

    }

次に、異なるシーンのクラスのコンストラクション関数に値を割り当てます.
class ChooseScreen : CCScene

    {

        private static ChooseScreen _current;

        public static ChooseScreen Current

        {

            get

            {

                GameMain.CurrentScreen = 1;

                if (_current == null)

                {

                    _current = new ChooseScreen();

                }

                return _current;

            }

        }



        private ChooseScreen()

        {

            this.addChild(new ChooseLayer());

        }

    }

最後にGame 1.csで関数を書き換える
protected override void Update(GameTime gameTime)

        {

            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

            {

                switch (GameMain.CurrentScreen)

                {

                    case -1:

                    case 0:

                        this.Exit();

                        break;

                    case 1:

                        CCDirector.sharedDirector().replaceScene(MainMenuScreen.Current);

                        break;

                    case 2:



                        string msg = "Quit Game?";

                        List<string> MBButtons = new List<string>();

                        MBButtons.Add("Yes");

                        MBButtons.Add("No");

                        Guide.BeginShowMessageBox("Game Over", msg, MBButtons, 0,

                                            MessageBoxIcon.Alert, GetMBResult, null);



                        break;

                    default:

                        this.Exit();

                        break;

                }

            }





            base.Update(gameTime);

        }

void GetMBResult(IAsyncResult r)
        {
            int? b = Guide.EndShowMessageBox(r);
            if (b == 0)
            {
                CCDirector.sharedDirector().replaceScene(ChooseScreen.Current);
            }
        }

完了します.