Удаление ячеек массива.
|
|
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 не имеет этих ограничений и под цель подходит лучше.
Именно
Вообще, когда пользовался именно такими массивами, то всегда хранил индекс последнего элемента отдельной переменной. Как то даже не задумывался о том что в GM есть функции ресайза массива. Впрочем, когда из-за такого подхода возникали сложности, то просто заменял его на ds_list, который чуть менее удобен в применении чисто синтаксически. Код работы с ds_list трудновато читать. Но при моем подходе, скрипт который я описал выше, чисто теоретически, имеет право на жизнь, хот и поле для багов там немаленькое. Но сам бы я применять его все же не стал ))
Ghaarp
The soul lighter(Android, logic)
Zzzzombie RAGE!!!(For android)
|
|
| |