Народный учебник по OpenGL


Nehe21 - часть 55


Первая строка кода - PlaySound("Data/freeze.wav",NULL, SND_ASYNC | SND_LOOP). В этой строке проигрывается файл freeze.WAV из каталога DATA. Обратите внимание на то, что мы на этот раз используем SND_ASYNC. Мы хотим, чтобы звук замораживания играл без остановки игры. Флаг SND_LOOP позволяет циклично повторять звук, пока мы не сообщим, что пора прекратить играть, или пока не будет запущен другой звук.

После того, как мы запустили проигрывание звука, мы задаем hourglass.fx в 2. Когда hourglass.fx равно 2, песочные часы исчезнут, враги замрут, и звук будет непрерывно играть.

Мы также устанавливаем hourglass.fy в 0. Переменная hourglass.fy - счетчик. Когда она достигнет некоторого значения, значение переменной hourglass.fx изменится.

      // Если игрок попал в песочные часы и они на экране

      if ((player.fx==hourglass.x*60) && (player.fy==hourglass.y*40) && (hourglass.fx==1))

      {

        // Играть звук замораживания

        PlaySound("Data/freeze.wav", NULL, SND_ASYNC | SND_LOOP);

        hourglass.fx=2;          // Задать hourglass fx значение 2

        hourglass.fy=0;          // Задать hourglass fy значение 0

      }

В этой небольшой части кода увеличивает значение вращения игрока наполовину скорости выполнения игры. Если player.spin больше чем 360.0f, мы вычитаем 360.0f из player.spin. Это предохраняет значение player.spin от переполнения.

      player.spin+=0.5f*steps[adjust]; // Вращение игрока по часовой

      if (player.spin>360.0f)          // Значение spin больше чем 360?

      {




- Начало -  - Назад -  - Вперед -