Предыдущая Следующая
GraphicsDeviceManager graphics; ContentManager content;
282 Смена игровых состояний
int screenWidth, screenHeight;
/// <summary> /// Конструктор /// <summary> public Game1() {
graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); graphics.PreferredBackBufferWidth = 1280; graphics.PreferredBackBufferHeight = 720; screenWidth = graphics.PreferredBackBufferWidth; screenHeight = graphics.PreferredBackBufferHeight;
}
/// <summary> /// Инициализация /// <summary>
protected override void Initialize()
{
base.Initialize();
}
/// <summary>
/// Загрузка компонентов игры /// <summary>
protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{ }
}
/// <summary>
/// Освобождаем ресурсы
/// <summary>
protected override void UnloadGraphicsContent(bool unloadAllContent)
{
if (unloadAllContent == true)
{
content.Unload();
}
}
/// <summary>
/// Обновляем состояние игры /// <summary>
protected override void Update(GameTime gameTime)
{
switch (gameState)
{
case CurentGameState.SplashScreen:
{
break;
Улучшаем смену игровых состояний 283
}
case CurentGameState.MenuScreen:
{
break;
}
case CurentGameState.HelpScreen:
{
break;
}
case CurentGameState.AboutScreen:
{
break;
}
case CurentGameState.GameScreen:
{
if(GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();
break;
}
case CurentGameState.GameOverScreen:
{
break;
}
case CurentGameState.VictoryScreen:
{
break;
}
}
base.Update(gameTime);
}
/// <summary>
/// Рисуем на экране
/// <summary>
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(new Color(159, 147, 207)); switch (gameState)
{
case CurentGameState.SplashScreen:
284 Смена игровых состояний
{
break;
}
case CurentGameState.MenuScreen:
{
break;
}
case CurentGameState.AboutScreen:
{
break;
}
case CurentGameState.GameScreen:
{
break;
}
case CurentGameState.GameOverScreen:
{
break;
}
case CurentGameState.VictoryScreen:
{
break;
}
}
base.Draw(gameTime);
} } }
На диске, в примерах от клуба разработчиков игр XNA Creators Club находится проект под названием GameStateManagementSample. В этом примере представлен более сложный и профессиональный механизм смены игровых состояний, а также показаны методика реализации интерактивного меню на базе шрифта, использование заставки для загрузки игры и техника плавного перехода с экрана на экран.
Глава 17
Загружаем в игру модель
Если вы работаете сами на себя и не умеете создавать SD-модели в графических редакторах, то вопрос выбора и поиска модели будет для вас одним из главных. Для простых и, скажем так, домашних игр трехмерная графика может быть какой угодно, но для игр, которые делаются на продажу, качество SD-моделей - дело первостепенной важности. Предыдущая Следующая
|