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

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

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

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

Закрытая тема
 
Опции темы
Старый 21.03.2009, 18:07   #1
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Удаление типа с ентитями!

Привет!
Есть такая у меня функция, удаляет типы и ентити связанные с ними!
Вот этот код:
	For objct.mapObject=Each mapObject
		FreeEntity(objct\mesh)
		Delete objct
	Next
По идее обязан очищать память от ентитей(скажу по секрету в этом типе у меня дома и деревья), но блин, он ничего не удаляет!!! Т.е. при загрузке нового уровня объекты старого остаются на своих места =((.. Что же это за лаг такой?
(Offline)
 
Старый 21.03.2009, 18:17   #2
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Удаление типа с ентитями!

с виду всё прально, ошибка не здесь
Graphics3D 1024,768,32,2
SetBuffer BackBuffer()

light=CreateLight()
cam=CreateCamera()
MoveEntity cam,0,0,-30

Type ent
Field mesh
Field x,y,z
End Type

Function create()
e.ent = New ent
e\mesh = CreateCube()
e\x=Rnd(-10,10)
e\y=Rnd(-10,10)
e\z=Rnd(-10,10)
PositionEntity e\mesh,e\x,e\y,e\z
End Function

For i=1 To 20
create()
Next

Repeat

If KeyHit(57)
For e.ent = Each ent
FreeEntity e\mesh
Delete e
Next
EndIf

UpdateWorld()
RenderWorld()
Flip

Until KeyHit(1)
End
например это у меня работает на ура ))
(Offline)
 
Эти 2 пользователя(ей) сказали Спасибо NitE за это полезное сообщение:
Hulk-DS (21.03.2009), impersonalis (21.03.2009)
Старый 21.03.2009, 18:35   #3
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Ответ: Удаление типа с ентитями!

ОМГ! Срочно закройте тему, прощу прощения! Я втупую два раза из создавал xD

=============
Нет, проблема осталась!
For Objects.mapObject=Each mapObject
		DebugLog(Objects\mesh)
		FreeEntity(Objects\mesh)
		DebugLog(Objects\mesh)
		DebugLog("==========")
		Delete Objects
	Next
Лог:
126912584
126912584
==========
127454328
127454328
==========
125644752
125644752
==========
Значит не удалаяется, кстати у меня там через LoadMesh эти ентити грузятся, может чето еще надо писать?

Последний раз редактировалось Baisangur, 21.03.2009 в 19:15.
(Offline)
 
Старый 21.03.2009, 20:01   #4
jimon
 
Сообщений: n/a
Ответ: Удаление типа с ентитями!

Baisangur
они удаляются, просто переменная не устанавливается в ноль
 
Сообщение было полезно следующим пользователям:
ABTOMAT (21.03.2009)
Старый 21.03.2009, 20:38   #5
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Ответ: Удаление типа с ентитями!

Я уже ее сам устанавливаю в ноль! Все пофигу ему!
Чтобы удалились старые, нужно чтобы их место заняли новые, как я уже тока не удалял их они всеравно остаются.. =(
(Offline)
 
Старый 21.03.2009, 21:18   #6
Main Cry
Оператор ЭВМ
 
Регистрация: 13.12.2008
Сообщений: 35
Написано 7 полезных сообщений
(для 12 пользователей)
Ответ: Удаление типа с ентитями!

Сообщение от Baisangur Посмотреть сообщение
они всеравно остаются
скинь свой код с инициализацией объектов типа.
(Offline)
 
Старый 21.03.2009, 22:50   #7
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Ответ: Удаление типа с ентитями!

Хм.. оказывается надо всетаки спать более 8 часов в 2 дня дня... =))
Оказывается я забыл очищать массив куда у меня парсятся пути до файлов моделей =)
(Offline)
 
Старый 22.03.2009, 01:20   #8
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Удаление типа с ентитями!

Сообщение от Baisangur Посмотреть сообщение
Я уже ее сам устанавливаю в ноль! Все пофигу ему!
Чтобы удалились старые, нужно чтобы их место заняли новые, как я уже тока не удалял их они всеравно остаются.. =(
Чё-т херню ты какую-то нагнал...
1. Установка переменной в нуль ничего не даст
Переменная - это всего лишь ссылка. То есть назначив в неё ноль ты просто потеряешь ссылку а объект останется где и был.
Надо FreeEntity делать на ту переменную, а то что после FreeEntit6y в ней цифра остаётся - то это роли не играет - объект-то уже удалён.
2. "Чтобы удалились старые, нужно чтобы их место заняли новые"
Если так сделаешь то просто ссылки заменятся ссылками на новые антити, а старые останутся) Т.е. тоже эффекта не даст.

З.Ы. А спать и правда надо. Я вон меньше 6 час/сутки не могу, хотя и стараюсь.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Старый 22.03.2009, 01:22   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Удаление типа с ентитями!

a = createcube()
a = createcube()

все. первый куб для нас потерян, не удалить его, не переместить. разве что только ClearWorld()
(Offline)
 
Старый 22.03.2009, 23:02   #10
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Ответ: Удаление типа с ентитями!

Спс ХолиДел и Автомат за помощь! Проблема уже решена, я строю объекты на локации из файла такого вида:
name=tree
type_num=2
x=217.802
y=29.4682
z=275.679
angle=-36.0
scale=1.95
name=tree
type_num=2
x=253.182
y=28.8648
z=226.584
angle=-18.0
scale=2.14
И у меня в отдельном файле функция есть, которая все это дело парсит в 3Д объекты и вставляет их в сцену, поворачивает, скейлит.. просто пути до них я сохраняю в массив(для некоторых целей), и при загрузке следующей локации я забывал очищать этот самый массив и у меня парсилось все то что уже было в массиве, если в сцене новой объектов было меньше чем в старой то те что есть занимали места прежних, а те что не заменялись так и выводились поновай. =) Все проблема решена! Тему можна закрыть!
(Offline)
 
Закрытая тема


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задачка с ентитями Mr_F_ 3D-программирование 7 08.02.2009 20:46
Удаление частиц CRACK 3D-программирование 8 14.06.2007 00:03
Удаление Atomikc 2D-программирование 15 01.05.2007 17:25
Удаление Mathcad 13 Михаил Болтовня 2 07.05.2006 20:41


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


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