forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Clearworld (http://forum.boolean.name/showthread.php?t=17966)

berdges 05.03.2013 00:34

Clearworld
 
Я учусь Блитцу ради своего удовольствия и до создания игр вряд ли дойду.
Но тем не менее прошу помощи в следующем.

Необходимо удалить предыдущий куб состоящий из шаров, после создания следующего. Не могу найти место в цикле для Clearworld, либо не понимаю его функционал.

Спасибо.

Graphics3D 640, 480, 16
c = CreateCamera()
l = CreateLight()
PositionEntity c, 300,300,-300
RotateEntity c, 45,45,0


Ox = CreateCube()
PositionEntity Ox, 0,0,0
ScaleEntity Ox, 1000,1,1
EntityColor Ox, 255,255,255

Oy = CreateCube()
PositionEntity Oy, 0,0,0
ScaleEntity Oy, 1,1000,1
EntityColor Oy, 255,255,255

Oz = CreateCube()
PositionEntity Oz, 0,0,0
ScaleEntity Oz, 1,1,1000
EntityColor Oz, 255,255,255
e1=-1
e2=-1
e3=-1
m1=1
m2=1
m3=1


While Not KeyDown(1)
RenderWorld
UpdateWorld

For x=e1 To m1
For y=e2 To m2
For z=e3 To m3

s = CreateSphere(20)
PositionEntity s,x*2, y*2, z*2
EntityColor s, Rnd(255),Rnd(255),Rnd(255)
Next
Next
Next

e1=e1+1
m1=m1+1
e2=e2+1
m2=m2+1
e3=e3-1
m3=m3-1

Flip
Wend
End

DStalk 05.03.2013 10:42

Ответ: Clearworld
 
ClearWorld удаляет все ранее созданные entity - кубы которые ты создал до начала цикла тоже удалятся. Его надо ставить перед созданием новых сфер:) UpdateWorld и RenderWorld лучше перед флипом воткнуть. Кусок кода с циклом:

Код:

While Not KeyDown(1)

 ClearWorld
 For x=e1 To m1
 For y=e2 To m2
 For z=e3 To m3

 s = CreateSphere(20)
 PositionEntity s,x*2, y*2, z*2
 EntityColor s, Rnd(255),Rnd(255),Rnd(255)
 Next
 Next
 Next

 e1=e1+1
 m1=m1+1
 e2=e2+1
 m2=m2+1
 e3=e3-1
 m3=m3-1

 UpdateWorld
 RenderWorld
 
 Flip
Wend


berdges 08.03.2013 16:40

Ответ: Clearworld
 
Спасибо, но не помогло. Black screen

DStalk 08.03.2013 16:53

Ответ: Clearworld
 
ага, ClearWorld удаляет все entity - в том числе и камеру и свет... их или в цикле заново пересоздавать надо, или не использовать ClearWorld вообще.

Лучше сделать трехмерный массив и сохранять туда созданные сферы, попутно удаляя предыдущие...

berdges 08.03.2013 17:01

Ответ: Clearworld
 
Ок. До массивов я еще не дозрел. А нет команды удаляющий определенный entity?

HolyDel 08.03.2013 17:16

Ответ: Clearworld
 
FreeEntity

DStalk 08.03.2013 17:20

Ответ: Clearworld
 
FreeEntity - удаляет:)

Вот код с массивами и удалением:
Код:

Graphics3D 640, 480, 16, 2
SetBuffer BackBuffer()
 c = CreateCamera()
 l = CreateLight()
 PositionEntity c, 300,300,-300
 RotateEntity c, 45,45,0


 Ox = CreateCube()
 PositionEntity Ox, 0,0,0
 ScaleEntity Ox, 1000,1,1
 EntityColor Ox, 255,255,255

 Oy = CreateCube()
 PositionEntity Oy, 0,0,0
 ScaleEntity Oy, 1,1000,1
 EntityColor Oy, 255,255,255

 Oz = CreateCube()
 PositionEntity Oz, 0,0,0
 ScaleEntity Oz, 1,1,1000
 EntityColor Oz, 255,255,255

 ;Смещение для новых сфер по осям
 Global dx,dy,dz
 ;Массив сфер 3х3х3
 Dim Spheres(2,2,2)

While Not KeyDown(1)

 For x=0 To 2
  For y=0 To 2
    For z=0 To 2

      ;Если сфера уже есть, то удаляем
      If  Spheres(x,y,z)>0 Then FreeEntity Spheres(x,y,z)
      Spheres(x,y,z) = CreateSphere(20)
      PositionEntity Spheres(x,y,z),x*2+dx, y*2+dy, z*2+dz
      EntityColor Spheres(x,y,z), Rnd(255),Rnd(255),Rnd(255)
                       
    Next
  Next
 Next

;Измениние смещения сфер
dx=dx+1:dy=dy+1:dz=dz-1
 
 UpdateWorld
 RenderWorld
 
 Flip
Wend


berdges 08.03.2013 17:26

Ответ: Clearworld
 
а им можно указать координаты Entity, который нужно удалить?

DStalk 08.03.2013 18:23

Ответ: Clearworld
 
Нет, он работает по "ссылке" на объект. Когда создаешь сферу, присваивается числовое значение переменной - через эту переменную и происходит управление, в том числе и удаление... В данном случае это значение присвивается элементу массива Spheres(x,y,z).

berdges 08.03.2013 20:18

Ответ: Clearworld
 
Спасибо большое!
чуточку бы мне ваших мозгов:)

infuzo 13.03.2013 10:26

Ответ: Clearworld
 
berdges, здесь найдешь много полезного, про базовые понятия, такие как фри ентити там расписано много чего.

tormoz 13.03.2013 18:41

Ответ: Clearworld
 
И здесь: http://blitzetc.ru/


Часовой пояс GMT +4, время: 13:02.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot