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


Nehe21 - часть 11


{

  __int64 time;                // time содержит 64 бита

  if (timer.performance_timer) // Есть высокоточный таймер?

  {

    // Захват текущего значения высокоточного таймера

    QueryPerformanceCounter((LARGE_INTEGER *) &time);

    // Вернем текущее время минус начальное время, умноженное на точность и 1000 (для миллисекунд)

    return ( (float) ( time - timer.performance_timer_start) * timer.resolution)*1000.0f;

  }

  else

  {

    // Вернем текущее время минус начальное время, умноженное на точность и 1000 (для миллисекунд)

    return( (float) ( timeGetTime() - timer.mm_timer_start) * timer.resolution)*1000.0f;

  }

}

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

Левый верхний угол экрана – это 0 по оси X и 0 по оси Y. Поэтому, устанавливая player.x в 0, мы помещаем игрока на левый край экрана. Устанавливая player.y в 0, мы помещаем нашего игрока на верхний край экрана.

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

void ResetObjects(void)      // Сброс Игрока и Противников

{

  player.x=0;                // Сброс позиции игрока X на левый край экрана

  player.y=0;                // Сброс позиции игрока Y на верх экрана

  player.fx=0;               // Установим точную позиции X

  player.fy=0;               // Установим точную позиции Y




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



Книжный магазин