2010-10-17 64 views
3

我創建了一個帶有「按Enter鍵開始遊戲」的內控屏幕,(和退出)課程出口不是問題,而是讓遊戲開始變得更加困難。有什麼建議?「按回車開始遊戲」XNA簡介屏幕

+0

[XNA中的非常簡單的菜單]的可能重複(http://stackoverflow.com/questions/3941418/very-simple-menu-in-xna) – bzlm 2010-10-17 10:41:36

回答

2

最簡單的方法是設置狀態機。這看起來很簡單。

 
enum GameState 
{ 
TitleScreen = 0, 
GameStarted, 
GameEnded, 
} 

東西然後在Game1.cs,或任何你正在處理此按鈕點擊,就可以把一個變量在你的類來存儲你是在當前的遊戲狀態。

 
GameState currentGameState = GameState.TitleScreen; 

然後,你做你編碼實際遊戲平局或更新之前,您可以查看當前遊戲狀態

 
void Draw(GameTime time) 
{ 
    if(currentGameState == GameStarted) 
    { 
     //Then handle the game drawing code here 

    } 
} 

update方法將基本上看起來一樣

1

我使用的系統效果很好(對我來說)

設置一個叫做像IContext的接口。在這有void Draw()和void Update()。

然後在遊戲中有一個名爲Context的公共IContext。你只需在提供的gameloop中調用context.update()和context.draw()即可。

然後菜單屏幕只需實現IContext。您傳遞通過其構造參考你的遊戲對象,它可以讓您從您插入的任何對象更改上下文。

所以你在「菜單」,並在菜單中塞當您recive的輸入關鍵你打電話this.game.context = new level01();

希望這是有道理的。

尼克