![]() |
Ответ: addmesh ???
Цитата:
Цитата:
Цитата:
Я пробывал обнулять меш, но но косяк появляется (2к строк, х*й найдешь!), теперь думаю стоит ли искать косяк? Т.е. нормальный вариант: Код:
xFreeEntity(ent) |
Ответ: addmesh ???
да. нормальный вариант.
вариант с xEntityExist(ent) был бы приемлем если завтра сдавать проект. но вообще - это не красиво. зачем лишний раз перебирать сценграф? клиентский код должен знать существует ентити или нет. он ее создавал и удалял в конце концов. |
Ответ: addmesh ???
|
Ответ: addmesh ???
Цитата:
Даже виндовс не без багов пишется |
Ответ: addmesh ???
HolyDel, объясни плиз, а почему надо все перебирать, есть же конкретная ссылка от ентити?!
|
Ответ: addmesh ???
Цитата:
нам надо перебрать все существующие и проверить есть с таким адресом ссылка или нет. и то это может не работать. например мы удалили ентити и создали новую. может так статься - что у новой ентити такой же адрес. вобщем это очень не по пацански не обнулять ссылку при удалении. |
Ответ: addmesh ???
Короче, написал функцию и постоянно пользуюсь, которая сразу обнуляет и проблема исчерпана :)
Function FreeEntityFull(entity) FreeEntity(entity) entity=0 End Function |
Ответ: addmesh ???
твой вариант бесполезен, потому что в функции ты оперируешь локальными переменными. Вот так будет работать:
Код:
Function FreeEntityF(entity) |
Ответ: addmesh ???
Ты ошибаешься. Оперирую я локальной переменной только в функции, а вот когда ты вместо entity используешь глобальную переменную, соответственно она и используется.
Ну тут даже говорить не о чем. Я в школе проходил как функции работают)... Без обид. Просто я разражает когда говорят что я не прав, не разобравшись. Вот сам посуди. У тебя есть: global a=10 Function oper(i) i=0 end function После вызова oper(a) что станет с "ГЛОБАЛЬНОЙ ПЕРЕМЕННОЙ а" ?? Согласись что в моем случае с Entity тоже глобально будет работать!? |
Ответ: addmesh ???
Эм, ты как бе неправ, это тебе не basic. Блитц создает внутри функции локальную переменную и уже оперирует с ней, а не с той, которую ты указал. Прежде чем что-то доказывать - проверь.
Код:
Graphics3D 800, 600, 32, 2 |
Ответ: addmesh ???
Блин, извини меня, H@NON!!
Вообще не прав был! Просто у меня в проекте было обращение к несуществующему ентити, и почему то после "неправильной" функции косяк пропал, может я чтото еще изменил в коде... Извини еще раз! |
Ответ: addmesh ???
Щас сделал самый простой пример, думал вдруг в ентити такая особенность.
Код:
Global a=10 Это чушь какая то. :4to: У меня в проекте пару десятков функций, которые работают с типами, массивами, гл. переменными, ентитями - всё работает. Я практически нигде не использую Return. |
Ответ: addmesh ???
Цитата:
|
Ответ: addmesh ???
Код:
Global a=10 Как Mr_F_ сказал - блиц передаёт не указатель а данное, что делает так сказать копию данного тем самым ты работаешь уже с другой переменной. |
Ответ: addmesh ???
В функции при указании у нее переменной(function ss(ent)) внутри создается копия и работа идет уже с ней, а не с оригиналом. Кто-нибудь еще хочет объяснить?
|
Часовой пояс GMT +4, время: 05:11. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot