cococos 2 d-xnaゲームで後退キーをどのように制御して目的的なジャンプを実現するか
5705 ワード
実際には,wpの後退「シーン」を異なるゲームシーンに基づいて決定する必要がある場合がある.
まず定数クラスを構築し、異なるページの代表値をマークするために定数を置くことができます.
例:
次に、異なるシーンのクラスのコンストラクション関数に値を割り当てます.
最後にGame 1.csで関数を書き換える
完了します.
まず定数クラスを構築し、異なるページの代表値をマークするために定数を置くことができます.
例:
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);
}
}
完了します.