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

Эта стандартная процедура по созданию объектов классов AudioEngine, SoundBank и WaveBank подгружает в игру имеющиеся звуковые данные. Теперь, чтобы воспроизвести любой файл, необходимо просто вызвать метод PlayCue(), в параметрах которого указать название файла для воспроизведения.

soundbank.PlayCue("boom");

В классе Sound реализация воспроизведения звуковых файлов несколько отличается от того, что я вам показал, но отличается в лучшую сторону. Смысл здесь следующий. Вместо того чтобы в методе PlayCue() явно прописывать название воспроизводимого файла, используется более элегантная конструкция, состоящая из структуры soundList и массива данных cueNames.

public enum soundList {

/// <summary>

/// Прикосновение к платформе

/// </summary>

Platform,

/// <summary>

/// Падение в пропасть

/// </summary>

Boom,

}

private static string[] cueNames = new string[]

{

"platform", "boom",

};

Любые элементы структуры или массива данных всегда ведут свое числовое исчисление от нуля. В структуре soundList присутствуют два названия -Platform и Boom. Для читабельности исходного кода и дальнейшего использования звуковых данных такая запись просто прекрасна, но на самом деле в любой структуре первый элемент (Platform) всегда равен нулю, второй элемент (Boom) - единице и т. д. Аналогичные явления присутствуют и в массиве данных, поэтому если взять метод PlayCue() класса Sound, то получится, что обращение к элементам структуры идет по имени.

public static void PlayCue(soundList sound)

{

soundbank.PlayCue(cueNames[(int)sound]);

}

В классе Sound, кроме метода PlayCue() , есть еще три метода. Первый метод Stop() позволяет останавливать воспроизведение определенного звукового файла.

/// <summary>

/// Останавливаем воспроизведение /// </summary>

public static void Stop(Cue cue)

206 Звуковые эффекты

Воспроизведение звука в игре 207

cue.Stop(AudioStopOptions.Immediate);

}

В свою очередь, второй метод CuePlay() позволяет воспроизводить файл после его остановки. В параметре этого метода необходимо просто передать название структурной переменной, которая отвечает за один из звуковых файлов.

/// Воспроизведение звука после остановки /// </summary>

public static CuePlay(soundList sound)

{

Cue returnValue = soundbank.GetCue(cueNames[(int)sound]);

returnValue.Play();

return returnValue;

Последний, очень важный метод занимается тем, что постоянно обновляет работу звукового движка. Вызов этого метода в дальнейшем должен производиться непосредственно в игровом цикле в методе Update(). Сейчас давайте перейдем к классу Game1 и попрактикуемся в воспроизведении звука в игре.


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

Горяченькое

Друзья

Hosted by uCoz