Ребят, помогите в очень срочном порядке. По определенным причинам я дня 3 вообще головой навряд ли до чего смогу додуматься, а надо срочно.
Опишу проблему.
1. При глобальном нажатии в игре создается проверяющий объект o_destr
2. При столкновении с объектом уничтожения размер массива в объекте проверки прибавляется на 1.
3. Почему то я смог реализовать уничтожение только 2 объектов. И просто не могу допереть, как можно легко и без лишней нагрузки на игру, сделать уничтожение всех выделенных объектов. Да все так плохо. Но поверьте не могу. Ниже код:
Код
=Create
b=0
go=instance_number(o_cubes1)
for(i=0;i<go;i+=1)
{
mass[i]=0;
}
go_del=false
go_del=true
[b]///Собственно тут мы проверяем при создании, сколько потенциальных объектов к уничтожению имеем. и пишем в массивы ( Можно как то ли еще отобрать их по значению переменных ? тоже такой наболевший вопрос.[/b]
Код
=step
if instance_exists(o_cubes1) and place_meeting(x,y,o_cubes1) and go_del=true
{
b=instance_number(o_cubes1)
for(i=0;i<b;i+=1)
{
if mass[i]=0
{
mass[i]=instance_nearest(x,y,o_cubes1)
break;
}
}
}
////Ну тут все просто. проверяем массив, если 0 записываем объектус Id.
Код
=Global Mouse Left Realesed
for(i=0;i<global.destr;i+=1)
{
if mass[i].spr=mass[i+1].spr and mass[i]>0 and mass[i+1]>0
{
mass[i].die=1
mass[i+1].die=1
} else { break; }
}
instance_destroy()
///Тут я проверяю собственно подходят ли переменные у двух массивов, проверяю больше ли 0, если да уничтожаем объекты.
Повторюсь:
3. Почему то я смог реализовать уничтожение только 2 объектов. И просто не могу допереть, как можно легко и без лишней нагрузки на игру, сделать уничтожение всех выделенных объектов. Да все так плохо. Но поверьте не могу.
Добавлено (31 октября 2016, 12:46)
---------------------------------------------
Собственно из последнего я и не могу понять, почему не удаляются все выбранные объекты. Ведь цикл вроде правильно работает.
Массивы по идеи должны проверяться как то так по циклу.
mass[0] mass[0+1]
mass[1] mass[1+1]
итд. или я чего то не понимаю?
Добавлено (31 октября 2016, 12:51)
---------------------------------------------
и еще. В криэйт.
go_del=false
go_del=true
я сделал просто для перестраховки, чтобы цикл успел завершится. Не знаю, нужно это или нет.
Добавлено (31 октября 2016, 12:57)
---------------------------------------------
Извините, все работает сам затупил.
Теперь реальная проблема. Уничтожение то работает, то выдает ошибку
Push :: Execution Error - Variable Index [0,6] out of range [1,6] - -1.mass(100030,6)
at gml_Object_o_dest_StepNormalEvent_1 (line 7) - if mass[i]=0
В чем причина?Добавлено (31 октября 2016, 13:33)
---------------------------------------------
ребят вот это я чет реально не понимаю, почему постоянно эту ошибку выдает только с разными индексами
Добавлено (31 октября 2016, 13:34)
---------------------------------------------
по идеи же, при уничтожении объекта массивы внутри тоже уничтожаются. А значит все проверки итд. проходят заного? ХЭЛП