Многие игровые примеры / учебные пособия сосредоточены только на рендеринге основной игры и не показывают остальную часть игры, такую как первая целевая страница, заставка, страница рекордов, страница кредитов и так далее.
Для чего-то вроде DirectX и XNA, как создаются / отображаются эти другие экраны?
В качестве альтернативы примеру Microsoft, упомянутому Davidsbro, если вы хотите создать свою собственную базовую систему управления игровым состоянием, вы можете сделать это с помощью переключателя enum. Для этого подхода вы должны объявить тип enum и установить его значение по умолчанию, в этом случае значением по умолчанию может быть главное меню игры. В XNA это будет выглядеть примерно так:
enum GameScene { menu, game };
GameScene scene = GameScene.menu;
Внутри метода обновления игр вы должны реализовать оператор switch, который будет отвечать за обработку обоих перечисляемых состояний:
protected override void Update(GameTime gameTime)
{
switch (scene)
{
case GameScene.menu:
{
// Perform menu scene logic
break;
}
case GameScene.game:
{
// Perform game scene logic
break;
}
}
base.Update(gameTime);
}
Затем вам потребуется реализовать еще один переключатель в методе draw аналогично переключателю enum выше.
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
switch (scene)
{
case GameScene.menu:
{
// Draw menu scene
break;
}
case GameScene.game:
{
// Draw game scene
break;
}
}
base.Draw(gameTime);
}
Кроме того, вам нужно будет реализовать некоторую форму логики для перехода между различными игровыми состояниями. Это может быть достигнуто через пользовательский ввод или некоторую форму таймера игры.
Других решений пока нет …