Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 05.03.2013, 00:34   #1
berdges
AnyKey`щик
 
Регистрация: 05.03.2013
Сообщений: 12
Написано 0 полезных сообщений
(для 0 пользователей)
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
(Offline)
 
Ответить с цитированием
Старый 05.03.2013, 10:42   #2
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: 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
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 16:40   #3
berdges
AnyKey`щик
 
Регистрация: 05.03.2013
Сообщений: 12
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Clearworld

Спасибо, но не помогло. Black screen
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 16:53   #4
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Clearworld

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

Лучше сделать трехмерный массив и сохранять туда созданные сферы, попутно удаляя предыдущие...
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 17:01   #5
berdges
AnyKey`щик
 
Регистрация: 05.03.2013
Сообщений: 12
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Clearworld

Ок. До массивов я еще не дозрел. А нет команды удаляющий определенный entity?
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 17:16   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Clearworld

FreeEntity
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 17:20   #7
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: 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
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 17:26   #8
berdges
AnyKey`щик
 
Регистрация: 05.03.2013
Сообщений: 12
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Clearworld

а им можно указать координаты Entity, который нужно удалить?
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 18:23   #9
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Clearworld

Нет, он работает по "ссылке" на объект. Когда создаешь сферу, присваивается числовое значение переменной - через эту переменную и происходит управление, в том числе и удаление... В данном случае это значение присвивается элементу массива Spheres(x,y,z).
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Старый 08.03.2013, 20:18   #10
berdges
AnyKey`щик
 
Регистрация: 05.03.2013
Сообщений: 12
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Clearworld

Спасибо большое!
чуточку бы мне ваших мозгов
(Offline)
 
Ответить с цитированием
Старый 13.03.2013, 10:26   #11
infuzo
Нуждающийся
 
Регистрация: 10.06.2012
Сообщений: 66
Написано 6 полезных сообщений
(для 9 пользователей)
Ответ: Clearworld

berdges, здесь найдешь много полезного, про базовые понятия, такие как фри ентити там расписано много чего.
(Offline)
 
Ответить с цитированием
Старый 13.03.2013, 18:41   #12
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Clearworld

И здесь: http://blitzetc.ru/
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com