Привет всем. Возникла проблема с созданием "экземпляров" какого-либо объекта. Система примерно такая, что в двумерном массиве первый индекс означает номер объекта, а второй - его параметр. (Objects[4, OBJ_X] = 100; например). Удалить этот экземпляр не удастся. Даже если всё заполнить нулями, он будет занимать место в памяти. Возможно ли в Pixilang каким-либо образом создать динамический список, чтобы в нем хранились массивы параметров для экземпляров и при их удалении все последующие элементы смещались, тем самым заполняли "пробелы" в списке?
Или же есть возможность создать другую систему экземпляров? Если так, то был бы рад узнать, какая именно.
Динамический список данных
- NightRadio
- Site Admin
- Posts: 3954
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: Динамический список данных
Привет!
В данный момент функций для работ со списками нет. Но их очень легко написать самому. Возможно, в новых версиях языка будут какие-то встроенные
В данный момент функций для работ со списками нет. Но их очень легко написать самому. Возможно, в новых версиях языка будут какие-то встроенные
-
- Posts: 10
- Joined: Thu Oct 16, 2014 12:29 am
Re: Динамический список данных
Можно по подробнее? Нашел несколько реализаций на C, но не особо представляю, как такое можно сделать именно в Pixilang.
- NightRadio
- Site Admin
- Posts: 3954
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: Динамический список данных
В вашем случае, кстати, логичнее было бы пустое место заполнять -1, а потом перед созданием нового объекта просто искать пустую область, заполненную -1
Но если все-таки нужно удалить, тогда вот, например, код удаления: нужно просто весь кусок данных справа от удаляемого сместить влево.
Но если все-таки нужно удалить, тогда вот, например, код удаления: нужно просто весь кусок данных справа от удаляемого сместить влево.
Code: Select all
fn remove_element( $data, $x )
{
$xsize = get_xsize( $data ) - 1
$ysize = get_ysize( $data )
$i = $x while $i < $xsize
{
$y = 0 while $y < $ysize
{
$data[ $i, $y ] = $data[ $i + 1, $y ]
$y + 1
}
$i + 1
}
resize( $data, $xsize, $ysize )
}
-
- Posts: 10
- Joined: Thu Oct 16, 2014 12:29 am
Re: Динамический список данных
Да, я уже подумал о заполнении минусами. Спасибо, подтвердили мои мысли Тем более, что больше сотни экземпляров мне и не нужно
Спасибо большое
Спасибо большое