Четверг, 28 Марта 2024, 19:51

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Удаление ячеек массива.
Удаление ячеек массива.
RomaN72Дата: Четверг, 24 Сентября 2015, 18:59 | Сообщение # 1
частый гость
Сейчас нет на сайте
Возможно ли удалить ячейку массива, при этом сместив его, чтобы не было пробелов?

Если да, то вот пример на котором вы можете мне это пояснить:)


falcowareДата: Четверг, 24 Сентября 2015, 19:23 | Сообщение # 2
старожил
Сейчас нет на сайте
RomaN72, фу ты прочитал:
LuxorixДата: Четверг, 24 Сентября 2015, 19:30 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Это называется очередь

LUXORIX GAMES

Сообщение отредактировал Luxorix - Четверг, 24 Сентября 2015, 19:30
OpenGOOДата: Четверг, 24 Сентября 2015, 20:35 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Такое с таким массивом нельзя проделать. Может стоит присмотреться к спискам.

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
XDominatorДата: Пятница, 16 Октября 2015, 14:29 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Физически проделать - можно.

Берешь, создаешь скрипт типа delete_val_from_arr(arrname, index, maxindex)
Внутри пишешь в цикле смещение всех элементов на -1, начиная с index и до maxindex.
Это, криво, потенциальнобагнуто и настолько же красиво, как одевать трусы через голову.

А лучше, написать:
Код

mass = ds_list_create();
ds_list_add(mass, m1);\\Повторяем 5 раз в реальном коде с нужными значениями


Ну а потом, где нужно:
Код

ds_list_delete(mass, index)


не факт что называется функция именно delete, это может быть remove, clear или еще че нить в этом вроде. Справки под рукой нет, но я думаю ты справишься.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
YellowAfterlifeДата: Пятница, 16 Октября 2015, 14:53 | Сообщение # 6
Сейчас нет на сайте
Цитата XDominator ()
Берешь, создаешь скрипт типа delete_val_from_arr(arrname, index, maxindex)
Внутри пишешь в цикле смещение всех элементов на -1, начиная с index и до maxindex.

Подвох в том, что размер исходного массива это не уменьшит, и последующие вызовы array_length_1d будут давать неправильный результат. А хранить в ячейке массива его длину - ещё больший костыль.
ds_list не имеет этих ограничений и под цель подходит лучше.


XDominatorДата: Понедельник, 19 Октября 2015, 07:31 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Цитата YellowAfterlife ()
Подвох в том, что размер исходного массива это не уменьшит, и последующие вызовы array_length_1d будут давать неправильный результат. А хранить в ячейке массива его длину - ещё больший костыль.
ds_list не имеет этих ограничений и под цель подходит лучше.


Именно yes

Вообще, когда пользовался именно такими массивами, то всегда хранил индекс последнего элемента отдельной переменной. Как то даже не задумывался о том что в GM есть функции ресайза массива. Впрочем, когда из-за такого подхода возникали сложности, то просто заменял его на ds_list, который чуть менее удобен в применении чисто синтаксически. Код работы с ds_list трудновато читать.
Но при моем подходе, скрипт который я описал выше, чисто теоретически, имеет право на жизнь, хот и поле для багов там немаленькое. Но сам бы я применять его все же не стал ))


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Удаление ячеек массива.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг