Как создать массив данных в Game Maker Studio 1.4.9?
Пытаюсь понять как работать с гамаком, местами это похоже на юнити, а местами на Stencyl,
что очень забавно.
Хочется понять как создать список какого-нибудь класса? (возможно класс это объект, я пока не совсем понял структуру) чтобы перезагрузка уровня не удалила и не сбросила его (типа глобально)
И чтобы эти объекты не торчали на уровне.
- 25 февраля 2020, 11:41
- 01
В Tic-80 Lua это выглядит так:
В Юнити примерно так:
Можно ли создать в Game Maker программные объекты, которые будут храниться в каком-то списке, чтобы был всегда доступ к ним, и чтобы они не удалялись при перезагрузке уровня. Или же тут объекты это и графические объекты одновременно, просто я не до конца понимаю концепцию гейм мейкера?!
Вообще так и есть, нам обещали lightweight objects, но пока их не добавили в движок. С другой стороны, люди уже 20 лет делают игры без них, просто создавая объекты вне экрана и делая их невидимыми. Потребление процессорного времени, которое происходит при вычислении нулевого изменения координат при нулевом изменении скорости и угла движения, при нулевой же гравитации и сопротивлении - довольно незначительно.
Безусловно, сюда может набежать толпа любителей партиклов, или любителей хранить в оперативной памяти "просто 100000 объектов" без конкретной игровой цели. Но для партиклов уже 15 лет как существует своя система, а просто 100000 объектов на практике бесполезны - как правило это означает что задача была неправильно поставлена и для этого следовало завести или 100000 списков, или 100000 словарей.
Ещё можно создавать БД в памяти вручную, но непонятно какая в этом нужда - на дворе не 2005 год.
Ну а так, твой лимит - 34000, по моим тестам:
https://kolenka.net/posts/na-chto-sposoben-vash-dvizhok-gamak-derzhit-34000-obektov-na-59fps
В Game Maker:
(Объект o_box нужно создать в списке ресурсов предварительно)
В процессе игры можешь обращаться к любому из них типа box[3].любая_переменная = 123.
Это пример с массивом, можно заводить их в списке:
Или в словаре, или в сетке, но это зависит от того, что ты проектируешь. Для двухмерного инвентаря лучше использовать ds_grid, для одномерного - ds_list, для просто перечисления всего подряд по ключевым словам (слотам, см. основная экипировка как в Diablo) - ds_map.
О, Спасибо! Надо потестить)
Только это не класс, если что. Хотя в данном случае это неважно