Game Maker - создание игр | HellRoom Games
Февраль 16, 2025, 14:41:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Как удалить лишние переменные ?  (Прочитано 4245 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SilentPhil
Norland
GM Pro user
*

Репутация: 479
Offline Offline

Пол: Мужской
Награды:
Первое место на HellRoom Jam #7 [Hell in Your Fridge]500 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]Настоящий игродел!Второе место на HellRoom Jam #6 [По следам Артакса]...
API: GameMaker Studio 2
Деятельность: GML, Pixel Art
Сообщений: 1363



WWW
« Ответ #15 : Февраль 20, 2021, 08:00:38 »

Так называемые формальные параметры не имеют ничего общего с переменными инстанса.
function(foo, bar) {}
Здесь - foo и bar формальные параметры. Они прекращают свое существование за пределами функции, доступ к ним извне получить, конечно, нельзя.

Переменные инстанса, заданые в create или других событиях уничтожаются после того, как была потеряна последняя ссылка на них. Если она хранилась только в уничтоженном инстансе, то сборщик мусора ее уничтожит. Если одновременно хранилась в нескольких, среди которых есть ещё живые, то не уничтожит.
Описанное выше больше относится к массивам и структурам, ссылки на которые можно хранить в нескольких местах без копирования.

ds_ структуры требуют в любом случае ручного удаления и самостоятельно не будут уничтожаться.
Записан

         
Да, на них можно кликать.
DerkMorris
Пользователь
***

Репутация: 0
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 68


Красный свет Анталиана зовёт нас в важный пут


WWW
« Ответ #16 : Февраль 24, 2021, 04:13:17 »

и у меня вопрос когда уничтожается объект ачищаются переменные которые были в нем?
Локальные - да. Глобальные - нет. Дата-структуры (ds_list, ds_map, ds_grid и т.п.) - нет, так как тоже являются глобальными.

В некоторых ассетах на YoYo Marketplace я замечал, что в событие Game End ставят уничтожение Дата-структур. Неужели они продолжают занимать память если их не уничтожать?
Записан
SilentPhil
Norland
GM Pro user
*

Репутация: 479
Offline Offline

Пол: Мужской
Награды:
Первое место на HellRoom Jam #7 [Hell in Your Fridge]500 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]Настоящий игродел!Второе место на HellRoom Jam #6 [По следам Артакса]...
API: GameMaker Studio 2
Деятельность: GML, Pixel Art
Сообщений: 1363



WWW
« Ответ #17 : Февраль 24, 2021, 06:40:02 »

Game End триггерится, в том числе, при рестарте игры. Если не очищать структуры при рестарте, то они продолжат занимать память. Если закрыть игру, то память освободится самостоятельно.
Записан

         
Да, на них можно кликать.
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.126 секунд. Запросов: 27.