В игре, которую я сейчас создаю, есть интерактивный элемент, который должен работать одинаково при взаимодействии с различными элементами.Чтобы упростить многократное копирование, я продублировал объекты, содержащие этот код, и изменил переменную global.variable, которая должна определять каждую отдельную «группу» (два объекта составляют сам элемент), чтобы они работали отдельно - однако, когда я взаимодействуюс одной группой в игре она по-прежнему вызывает одновременную реакцию другой.
Могут ли объекты быть связаны в GameMaker?И если да, то как мне отсоединить эти объекты, чтобы они работали отдельно?
Вот код для обоих на тот случай, если в коде больше проблем с тем, что я пропустил.В основном, как работает группа, так это то, что когда игрок взаимодействует с объектом, объект меняет свой экземпляр, а новый объект приобретает функциональность старого.Первые три изображения в каждой группе относятся к первому объекту, последние три относятся ко второму.
Объект 1 группы 1;
Создание события
global.ssscollission = 0;
Нажатие клавиши E
if (global.ssscollission = 0)
{
global.ssscollission = 1;
}
else
{
global.ssscollission = 0;
}
instance_change(obj_snakeplush,false)
Графический интерфейс рисования
Если здесь есть функции Столкновение, Остановить движение, Текст шрифта и Значение рисования
.
Группа 1 Объект 2;
Графический интерфейс рисования
Если здесь присутствуют функции Столкновение, Остановить движение, Текст шрифта и Значение рисования, а также;
if (global.ssscollission)
{
draw_set_color(c_black);
draw_set_alpha(0.75);
draw_rectangle(0,0,room_width,room_height,0);
draw_set_alpha(1);
draw_set_color(c_white);
draw_set_halign(fa_center);
draw_sprite_ext(spr_sss,0,920,50,0.65,0.65,0,c_white,1);
draw_set_font(fnt_credit);
draw_text(1275,1400,"Press the [E] button to return.")
}
Нажатие клавиши E
if (global.ssscollission = 0)
{
global.ssscollission = 1;
}
else
{
global.ssscollission = 0;
}
Конец анимации
image_index = image_number - 1;
image_speed = 0;
global.danielfound = global.danielfound + 1
.
Группа 2 Объект 1;
Создать событие
global.danieltree = 0;
Нажать клавишу E
if (global.danieltree = 0)
{
global.danieltree = 1;
}
else
{
global.danieltree = 0;
}
instance_change(obj_danieltree,false)
Рисовать GUI
Если здесь есть Столкновение, Остановить движение, Шрифт и Значение шрифта DnD *
.
Объект 2 группы 2;
Графический интерфейс рисования
Если здесь также присутствуют функции Столкновение, Остановить движение, Шрифт и Значение шрифта DnDas;
if (global.danieltree)
{
draw_set_color(c_black);
draw_set_alpha(0.75);
draw_rectangle(0,0,room_width,room_height,0);
draw_set_alpha(1);
draw_set_color(c_white);
draw_set_halign(fa_center);
draw_sprite_ext(spr_sss,0,920,50,0.65,0.65,0,c_white,1);
draw_set_font(fnt_credit);
draw_text(1275,1400,"Press the [E] button to return.")
}
Нажатие клавиши E
if (global.danieltree= 0)
{
global.danieltree= 1;
}
else
{
global.danieltree= 0;
}
АнимКонец действия
image_index = image_number - 1;
image_speed = 0;
global.danielfound = global.danielfound + 1
Приветствия