Программа, выводящая на экран лес из уже созданных елок (25 мин)
Эта программа наглядно демонстрирует копирование и группирование объектов
Загрузим файл с елкой "fir.bb" и создадим пустой объект (после камеры и света):
fir = CREATEPIVOT()
Добавим в каждый оператор создания объекта созданный "родительский" объект, заменим, например
c1 = CREATECONE(20, 1)
на
c1 = CREATECONE(20, 1, fir)
Затем, создадим цикл (перед командой RENDERWORLD):
FOR x = 1 TO 50
fir2 = COPYENTITY(fir)
POSITIONENTITY fir2, RND(-120, 120), 0, RND(-120, 120)
NEXT
Для большего эффекта, поменяем строки задания камеры:
cam = CREATECAMERA()
POSITIONENTITY cam, 0, 30, -20
ROTATEENTITY cam, 30, 0, 0
Итак, программа:
GRAPHICS3D 640,480
cam = CREATECAMERA()
POSITIONENTITY cam, 0, 30, -20
ROTATEENTITY cam, 30, 0, 0
l = CREATELIGHT()
ROTATEENTITY l, 0, 45, 45
fir = CREATEPIVOT()
c1 = CREATECONE(20, 1, fir)
SCALEENTITY c1, 5, 5, 5
ENTITYCOLOR c1, 0, 255, 0
c2 = CREATECONE(20, 1, fir)
SCALEENTITY c2, 4, 4, 4
POSITIONENTITY c2, 0, 4, 0
ENTITYCOLOR c2, 0, 255, 0
c3 = CREATECONE(20, 1, fir)
SCALEENTITY c3, 3, 3, 3
POSITIONENTITY c3, 0, 7, 0
ENTITYCOLOR c3, 0, 255, 0
c4 = CREATECONE(20, 1, fir)
SCALEENTITY c4, 2, 2, 2
POSITIONENTITY c4, 0, 10, 0
ENTITYCOLOR c4, 0, 255, 0
cyl = CREATECYLINDER(20, 1, fir)
POSITIONENTITY cyl, 0, -6, 0
SCALEENTITY cyl, 2, 2, 2
ENTITYCOLOR cyl, 170, 130, 30
FOR x = 1 TO 100
fir2 = COPYENTITY(fir)
POSITIONENTITY fir2, Rnd(-120, 120), 0, Rnd(1, 240)
NEXT
RENDERWORLD
FLIP
WAITKEY
Можно еще поэкспериментировать с программой - добавить модуль управления камерой из программы fir2.
Урок 6 – текстуры, плоскости, модели
На этом уроке рассматриваются дополнительные объекты трехмерной сцены