|
3D-программирование Вопросы, касающиеся программирования 3D мира |
22.08.2012, 22:12
|
#91
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: addmesh ???
Сообщение от Nerd96
|
Это ты мне адресуешь??
Сообщение от Nerd96
EntityClass
|
При удалении класс не меняется! Mesh - Mesh
Сообщение от HolyDel
ты же сам его удаляешь? своим кодом. ставь у себя где-то флаг.
|
Я тоже об этом думал, но я думал что есть варианты вроде xEntityExist(ent)...
Я пробывал обнулять меш, но но косяк появляется (2к строк, х*й найдешь!), теперь думаю стоит ли искать косяк? Т.е. нормальный вариант:
xFreeEntity(ent)
ent=0
if ent=0 then ...
?
__________________
|
(Offline)
|
|
22.08.2012, 22:21
|
#92
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: addmesh ???
да. нормальный вариант.
вариант с xEntityExist(ent) был бы приемлем если завтра сдавать проект.
но вообще - это не красиво. зачем лишний раз перебирать сценграф? клиентский код должен знать существует ентити или нет. он ее создавал и удалял в конце концов.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.08.2012, 23:04
|
#93
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: addmesh ???
Сообщение от burovalex
Это ты мне адресуешь??
|
Да. При правильной архитектуре кода битых ссылок не бывает.
|
(Offline)
|
|
22.08.2012, 23:18
|
#94
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: addmesh ???
Сообщение от Nerd96
Да. При правильной архитектуре кода битых ссылок не бывает.
|
Слушай умник, у тебя чтоли багов не бывает?! Ведешь себя как гамно с задранным носом
Даже виндовс не без багов пишется
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.08.2012, 23:22
|
#95
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: addmesh ???
HolyDel, объясни плиз, а почему надо все перебирать, есть же конкретная ссылка от ентити?!
__________________
|
(Offline)
|
|
22.08.2012, 23:27
|
#96
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: addmesh ???
HolyDel, объясни плиз, а почему надо все перебирать, есть же конкретная ссылка от ентити?!
|
ну так мы же эту ентити возможно удалили? по ссылке мусор.
нам надо перебрать все существующие и проверить есть с таким адресом ссылка или нет. и то это может не работать.
например мы удалили ентити и создали новую.
может так статься - что у новой ентити такой же адрес.
вобщем это очень не по пацански не обнулять ссылку при удалении.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.10.2012, 14:34
|
#97
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: addmesh ???
Короче, написал функцию и постоянно пользуюсь, которая сразу обнуляет и проблема исчерпана
Function FreeEntityFull(entity)
FreeEntity(entity)
entity=0
End Function
__________________
|
(Offline)
|
|
31.10.2012, 15:44
|
#98
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: addmesh ???
твой вариант бесполезен, потому что в функции ты оперируешь локальными переменными. Вот так будет работать:
Function FreeEntityF(entity)
FreeEntity(entity)
Return 0
End Function
entity = FreeEntityF(entity)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
01.11.2012, 01:03
|
#99
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: addmesh ???
Ты ошибаешься. Оперирую я локальной переменной только в функции, а вот когда ты вместо entity используешь глобальную переменную, соответственно она и используется.
Ну тут даже говорить не о чем. Я в школе проходил как функции работают)...
Без обид. Просто я разражает когда говорят что я не прав, не разобравшись.
Вот сам посуди. У тебя есть:
global a=10
Function oper(i)
i=0
end function
После вызова oper(a) что станет с "ГЛОБАЛЬНОЙ ПЕРЕМЕННОЙ а" ??
Согласись что в моем случае с Entity тоже глобально будет работать!?
__________________
|
(Offline)
|
|
01.11.2012, 01:25
|
#100
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: addmesh ???
Эм, ты как бе неправ, это тебе не basic. Блитц создает внутри функции локальную переменную и уже оперирует с ней, а не с той, которую ты указал. Прежде чем что-то доказывать - проверь.
Graphics3D 800, 600, 32, 2
Global entity = CreateSphere()
Print "number entity: "+entity
FreeEntityNEPRAVILNO(entity)
Print "after use FreeEntityNEPRAVILNO: "+entity
entity = FreeEntityPRAVILNO(entity)
Print "after use FreeEntityPRAVILNO: "+entity
WaitKey()
End
Function FreeEntityNEPRAVILNO(entity)
FreeEntity entity
entity = 0
End Function
Function FreeEntityPRAVILNO(ent)
;для теста закоментируем
;FreeEntity ent
Return 0
End Function
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
01.11.2012, 14:48
|
#101
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: addmesh ???
Блин, извини меня, H@NON!!
Вообще не прав был!
Просто у меня в проекте было обращение к несуществующему ентити, и почему то после "неправильной" функции косяк пропал, может я чтото еще изменил в коде...
Извини еще раз!
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.11.2012, 15:11
|
#102
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: addmesh ???
Щас сделал самый простой пример, думал вдруг в ентити такая особенность.
Global a=10
Print a
ff(a)
Print a
WaitKey()
End
Function ff(ent)
ent=0
End Function
ВСЕ РАВНО НЕ МЕНЯЕТ.
Это чушь какая то.
У меня в проекте пару десятков функций, которые работают с типами, массивами, гл. переменными, ентитями - всё работает. Я практически нигде не использую Return.
__________________
|
(Offline)
|
|
01.11.2012, 15:14
|
#103
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: addmesh ???
Function ff(ent)
ent=0
End Function
|
у тебя при передаче числовой переменной в функцию, создаётся её локальная копия в ней, инфа 100%. и ты меняешь её а не глобал.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.11.2012, 15:40
|
#104
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: addmesh ???
Global a=10
Print a
a = ff(a)
Print a
WaitKey()
End
Function ff(ent)
Return ent + 1
End Function
Так будет ок.
Как Mr_F_ сказал - блиц передаёт не указатель а данное, что делает так сказать копию данного тем самым ты работаешь уже с другой переменной.
|
(Offline)
|
|
01.11.2012, 17:43
|
#105
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: addmesh ???
В функции при указании у нее переменной(function ss(ent)) внутри создается копия и работа идет уже с ней, а не с оригиналом. Кто-нибудь еще хочет объяснить?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:24.
|