Цель урока: познакомиться с командами обновления экрана DarkBASIC и уяснить их важность.
Давайте начнем урок с программы, которая рисует на экране 3D-сферу.
Sync On
Make Object Sphere 1,100
Do
Sync
Loop
А теперь объясним, как команды рисуют и выводят на экран сферу.
Sync on
Команда "Sync on" дает указание DarkBASIC обновить изображение на экране, когда будет вызвана команда "Sync". Вам не обойтись без этих команд ни в одной программе на DarkBASIC.
Make Object Sphere 1,100
Как и большинство команд DarkBASIC, "Make Object Sphere" очень легко понять - конечно, если вы знаете английский язык. Она дает указание DarkBASIC создать объект в форме сферы. А каково назначение двух цифр в конце команды? Первая цифра "1" обозначает номер объекта, который нужно ввести в программу. Числа в DarkBASIC выполняют ту же функцию, что и имена. Они сообщают программе, какой именно объект нужно переместить по экрану, изменить или, как в нашем случае, создать. Второе число, "100", - это радиус вашей сферы.
Do
Loop
Команды "Do" и "Loop" используются для создания в программе цикла. Любые команды, помещенные вами между "Do" и "Loop", будут выполняться непрерывно, пока, находясь в редакторе, вы не нажмете клавишу "ESC" или "F12". Почти во всех программах, которые вы напишите, будет подобный цикл. Обычно его называют "основным" или "игровым" циклом. В нашем случае мы вставили между "Do" и "Loop" команду "Sync".
Sync
"Sync" означает "синхронизировать" . Когда программа меняет положение объекта, значения нового положения записываются в память, но не влияют на изображение 3D-сцены. Если синхронизацию отключить, экран будет обновляться всякий раз, когда меняются какие-либо значения, а иногда он не будет обновляться вовсе. В результате ваша программа станет выполняться медленно, но может случиться так, что экран останется пустым. Команду "Sync" можно сравнить с занавесом в театре. Когда подходит время поменять что-либо на 3D-сцене, "занавес" опускается, "декорации" меняются, и команда "Sync" снова поднимает "занавес". Она, как правило, вызывается только один раз в конце основного цикла программы, но бывают исключения. Надеемся, что вы уяснили предназначение команды "Sync". Добавим теперь к ней команду "Sync Rate".
Let's complete our discussion of the sync command set with the addition of the "Sync Rate" command.
Sync On
Sync Rate 30
Make Object Sphere 1,100
Do
Sync
Loop
Команда "Sync Rate" позволяет установить постоянную частоту обновления экрана. Частота обновления - это то, сколько раз в секунду поднимается и опускается "занавес" перед вашей сценой. Постоянная частота обновления нужна для согласованности работы программы на разных компьютерах. Если на вашем компьютере экран обновляется со скоростью 40 кадров в секунду, то на более производительном компьютере вашего друга он может обновляться со скоростью 120 кадров в секунду, а это слишком быстро. Установив постоянную частоту обновления (в нашем примере - "30"), вы добьетесь того, что экран будет обновляться с одной и той же скоростью на всех компьютерах. Человеческий глаз устроен так, что способен воспринимать скорость обновления экрана до определенных пределов, поэтому если вы установите слишком большую частоту, то будете зря расходовать ресурсы компьютера. А если частота обновления окажется слишком низкой, то движения на экране будут прерывистыми и медленными. Есть одно исключение: частоту обновления можно установить равной "0". Тогда DarkBasic будет обновлять экран с максимально доступной скоростью.
Итак, мы познакомили вас с набором команд синхронизации. Теперь вы сами сможете установить частоту обновления экрана, понимая, как и когда это нужно делать. Вы также узнали простейшие команды DarkBASIC, которые работают с объектами. Попробуйте изменить или добавить в программу следующие команды. Также попробуйте поменять значения ширины, высоты и глубины и посмотрите, как они влияют на изображения создаваемых вами объектов. В команде "Make Object Triangle" задайте различные значения "x", "y" и "z" и посмотрите, какие удивительные треугольники у вас получатся. Убедитесь, что каждому объекту присвоен уникальный номер. Для этого вместо слов "Номер объекта" поставьте физическое число, соответствующее конкретному объекту. (Это относится ко всем случаям, где рядом с именем команды присутствуют слова "Номер объекта".)
MAKE
OBJECT CUBE Номер объекта, Значение размера
MAKE
OBJECT BOX Номер объекта, Ширина, Высота, Глубина
MAKE
OBJECT CYLINDER Номер объекта, Значение размера
MAKE
OBJECT CONE Номер объекта, Значение размера
MAKE
OBJECT PLAIN Номер объекта, Значение ширины, Значение высоты
MAKE
OBJECT TRIANGLE Номер объекта, X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3