Приставки
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
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

{

Проект PauseGame 183

}

/// <summary>

/// Освобождаем ресурсы

/// <summary>

protected override void UnloadGraphicsContent(bool unloadAllContent) {

}

/// <summary>

/// Обновляем состояние игры /// <summary>

protected override void Update(GameTime gameTime)

{

if (GamePad.GetState(Playerlndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();

Pause();

if (paused == false) {

double elapsed = gameTime.ElapsedGameTime.TotalSeconds; for (int i = 0; sprite.Length > i;

{

sprite[i].UpdateFrame(elapsed);

}

MoveSprite(); MovePlatform();

}

base.Update(gameTime);

}

/// <summary>

/// Движение спрайта по вертикали

/// <summary>

public void MoveSprite()

{ }

/// <summary>

/// Движение платформы по экрану /// <summary>

public void MovePlatform()

{ }

/// <summary> /// Пауза в игре /// <summary>

184 Работа с джойстиком

public void Pause()

if (GamePad.GetState(Playerlndex.One).Buttons.Start == ButtonState.Pressed)

pauseKeyDown = true;

else if (pauseKeyDown)

pauseKeyDown = false; paused = !paused;

/// <summary>

/// Рисуем на экране

/// <summary>

protected override void Draw(GameTime gameTime)

{ }

Из блока кода, направленного на обработку паузы в состоянии игры, видно, что мы сначала определяем состояние переменной paused, и если ее значение равно false (нет паузы), то выполняется содержимое блока if. Если состояние булевой переменной paused изменилось на true (пауза в игре), то выполнение блока if пропускается, что равносильно необновлению состояния игры, то есть игра замирает.

Чтобы выйти из этого состояния, достаточно второй раз нажать кнопку «Start» и в соответствии с исходным кодом метода Pause() значение булевой переменной paused изменяется на противоположное значение. Заметьте, что вызов метода Pause() в методе Update() совершается до строки кода выхода из программы.

if (GamePad.GetState(Playerlndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();

Делается это намеренно, чтобы пользователь в режиме паузы мог свободно выйти из игры и закрыть программу.

Глава 10

Игровые столкновения

В играх объекты могут пересекаться друг с другом, или сталкиваться между собой. Такой вид пересечения объектов называется игровым столкновением. Для определения столкновения объектов в игре программисты пишут исходный код, который создает своего рода детектор столкновений. Если такое столкновение имеет место, то в игре необходимо производить определенные действия. Обработка ситуации при столкновении двух и более объектов между собой в играх может быть различной. В одних играх при столкновении вам придется уничтожать объекты, в других необходимо будет оттолкнуться от этого объекта, в третьих захватить этот объект и т. д., здесь все зависит от логики игры.


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

Горяченькое

Друзья

Hosted by uCoz