Цель урока: научиться загружать объекты в 3D-сцену и строить фундамент игровой программы.
Существует множество различных приложений, способных создавать и сохранять 3D-модели. В DarkBASIC можно использовать как формат "X" DirectX, так и формат "3DS" 3DStudio. В отличие от стандартных примитивов DarkBASIC, модели этих форматов помогут вам создавать более реалистичные и богатые графикой сцены.
Sync
On
Sync
Rate 30
Hide
Mouse
autocam
off
Backdrop
on
Set
camera range 1,5000
Fog
on
Fog
distance 4000
Fog
color RGB(128,128,128)
Color
Backdrop RGB(128,128,128)
Rem
Создаем матрицу
Make
matrix 1,10000,10000,20,20
Rem
Текстурируем матрицу
Load
image "grass09.bmp",1
Prepare
matrix texture 1,1,1,1
Fill
matrix 1,0,1
rem
Присваиваем координатам вершин матрицы случайные значения
randomize
matrix 1,125
rem
Загружаем объект
Load
object "idle.x",2
position object 2,5000,Get Ground Height(1,5000,5500),5500
Rem
Основной цикл
Do
set
cursor 0,0
print
X#
print
Y#
print
Z#
Rem
Сохраняем угол объекта
CameraAngleY#
= Camera angle Y()
Rem
Управление перемещением камеры
If
Upkey()=1
XTest# = Newxvalue(X#,CameraAngleY#,20)
ZTest# = Newzvalue(Z#,CameraAngleY#,20)
If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
Move camera 10
Endif
Endif
If
Leftkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#-5)
If
Rightkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#+5)
X#
= Camera position X()
Z# = Camera position Z()
Y#
= Get ground height(1,X#,Z#)
Position
Camera X#,Y#+35,Z#
Rem
Обновляем экран
Sync
Loop
Прежде всего, введем несколько полезных команд.
Hide Mouse
Команда "Hide mouse" убирает с экрана курсор мыши. В большинстве случаев в 3D-сценах курсор мыши на экране вам не понадобится.
autocam off
Команда "Autocam Off" выключает режим автоматической камеры. Когда этот режим включен, то при создании каждого новый объект в DarkBASIC, камера перемещается для того, чтобы показать этот объект. Если загружается большое число объектов, камера будет показывать каждый из них по мере загрузки. Выключение этого режима также играет свою роль при загрузке матрицы. Когда режим автоматической камеры выключен, камера устанавливается в центр созданной вами матрицы. Если режим включен, то камера будет установлена в позицию с координатами (0,0,0) в 3D-сцене.
Load object "idle.x",2
"Load Object" - основная команда для загрузки объекта в DarkBASIC. Первый параметр этой команды - имя файла объекта, загружаемого в 3D-сцену. Чтобы команда распознала имя файла, оно должно быть заключено в кавычки. Второй параметр команды - это номер, назначаемый данному объекту. Эта команда очень похожа на команды "Make Object". Все команды для работы с объектами, описанные в предыдущих уроках, будут работать с загруженными объектами точно так же, как они работают с объектами, созданными в DarkBASIC.
Loop object 2
Команда "Loop Object" осуществляет циклическую анимацию загруженного в DarkBASIC объекта. Если загруженный объект не содержит данных об анимации, использование этой команды может вызвать ошибку. Создавая анимированный объект в специальной программе, обратите внимание на плавность анимации в цикле, в противном случае будет наблюдаться дергающееся движение при переходе модели от последнего к первому кадру анимации.