OpenGL в Delphi

Теперь вы умеете рисовать даже такие "художественные произведения"




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

var
Angle: GLint = 0;

Вы пользуетесь не таймером, а скажем, зацикливаете программу Шаг увеличения переменной вы задаете так, что на вашем компьютере движение объектов происходит ровно и с удовлетворительной скоростью

Angle: = (Angle + 2) mod 360;

Может случиться, что на компьютере пользователя скорость воспроизведения окажется в пять раз выше, и тогда объекты на сцене будут перемещаться в пять раз быстрее.
В таких случаях лучше опираться на системное время Например, введите переменную для хранения текущего времени, а управляющую переменную задайте вещественной:

angle: GLfloat = 0; time: LongInt;

Если по сценарию полный оборот должен произойти за десять секунд, то код должен быть таким:

Angle: = Angle + 0. 1 * (GetTickCount - time)*3600/1000
If Angle >= 360. 0 then Angle: = 0. 0;
time: = GetTickCount;



Содержание раздела