По сути дела массив данных - это таблица, ряд или матрица данных. Если вы только осваивайте программирование, то понять эту штуку вам поможет математика.
Просто представьте себе список, простой список или таблицу в excel, например вот такую:
Таблица характеристик оружия из дизайн документа для игры
Так-как в этой статье я рассказываю только про одномерные массивы (Arrays), то нам достаточно названия оружия и урона.
Допустим, мы хотим записать в игре что у пистолета урон = 1. Как это сделать?
Можно создать переменную
- pistol_damage = 1
Ну ок. А если у вас 10 видов оружия? А если 100500?
Так и будем писать: mp5_damage, ak_damage...
Как записать всё это проще?
Можно взять и просто создать одну переменную - weapons_damage (урон оружия) и записать в неё все параметры урона у всех оружий.
- weapons_damage[0] = 1 // Урон у оружия номер (id) 0 равен 1
- weapons_damage[1] = 3 // Урон у оружия номер (id) 1 равен 3
- weapons_damage[2] = 5 // Урон у оружия номер (id) 2 равен 5
Далее, если нам надо например использовать переменную - урон оружия id 1 (Пускай - винтовка), параметр урона у которой мы записали как 3, то мы просто пишем:
damage = weapons_damage[1]
С помощью массива данных мы собрали в кучу все параметры урона для всех видов оружия, а не делали отдельные параметры урона и отдельные переменные под каждое оружие.
Массивы вам очень сильно помогут в работе со всякими списками, большими объемами данных, инвентарём в RPG и т.д. Без них код может быть Китайским (куча повторений).
Я записал видео где объясняю одномерные массивы на другом примере, вот код от туда:
if open=0{
effect_create_above(ef_ring,x,y,1,c_red);
item[0] = o_gold;
item[1] = o_grenade;
item[2] = o_shotgun;
item[3] = o_ammo_4_1;
item[4] = o_hp_1;
n = array_length_1d(item) -1
instance_create(x,y,item[irandom(n)]);
instance_destroy();
}
Старый код (и как сделать это не через массивы, а "Китайским кодом") вы можете найти в статье про рандомный лут:
Вот смотрите, тут у нас рандомный предмет (1 из 5). Может быть золото, граната, дробовик и т.д. Каждому объекту мы присвоили одну переменную - item, но разные значения!
Далее мы считаем n - количество данных в массиве (код для гейм мейкер студио).
Ну и создаёт случайный объект. Если мы добавим новый предмет в игру (или в список), то нам нужно его вставить только в одно место и всё.
item[5] = o_hp_2;
Добавили пятый предмет - улучшенную аптечку. Просто за первой аптечкой вставили эту строчку и всё, дальше всё уже будет считаться само.
Дополнительно вы можете посмотреть моё видео про массивы (8 минут):