Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

CurentGameState gameState = CurentGameState.SplashScreen;

Это значит, что в данный момент структурная переменная gameState ассоциируется исключительно со значением SplashScreen. Затем в игровом цикле необходимо просто создать проверку значения переменной gameState и в соответствии с ее текущим значением выбрать определенные действия.

switch(gameState) {

case CurentGameState.SplashScreen:

{

// показать заставку break; }

case CurentGameState.MenuScreen:

{

// показать меню break;

}

case CurentGameState.HelpScreen:

{

// показать экран с правилами игры break;

}

case CurentGameState.AboutScreen:

{

// показать экран об игре break;

}

case CurentGameState.GameScreen:

{

// старт игры break;

}

case CurentGameState.GameOverScreen:

{

// конец игры break;

}

case CurentGameState.VictoryScreen:

{

// экран выигрыша игры break;

}

}

Улучшаем смену игровых состояний 281

Элегантное и в то же время действенное решение смены игровых состояний. Этот подход мы будем использовать в нашей трехмерной игре. На компакт-диске в папке Code\Chapter16\GameState находится новый проект под названием GameState. В этом проекте используется вышеописанная схема. Ниже в листинге 16.1 предложен исходный код класса Gamel, иллюстрирующий работу смены игровых состояний на базе структуры CurentGameState.

На данном этапе в исходном коде структурная переменная gameState представляет фазу игрового процесса. Так будет продолжаться до тех пор, пока мы не дойдем до главы, рассказывающей о создании меню и других игровых заставок.

//=========================================================================

/// <summary>

/// Листинг 16.1

/// Исходный код к книге:

/// «Программирование игр для приставки Xbox 360 в XNA Game Studio Express»

/// Автор книги: Горнаков С. Г.

/// Глава 16

/// Проект: GameState

/// Класс: Gamel

/// Смена игровых состояний

/// <summary>

//=========================================================================

#region Using Statements using System;

using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion

namespace GameState {

public class Gamel : Microsoft.Xna.Framework.Game

{

private enum CurentGameState

{

SplashScreen,

MenuScreen,

HelpScreen,

AboutScreen,

GameScreen,

GameOverScreen,

VictoryScreen

}

CurentGameState gameState = CurentGameState.GameScreen;


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz