Глобальная переменная/затухание не срабатывает

Я использую Game Maker 2.

Попытка заставить работать фрагмент кода, который, когда тревога достигает 12 секунд, изменяет глобальную переменную внутри объекта, которая затем запускает объект для выполнения своего нормального процесса - затемнения экрана до черного. Однако это не работает, и я не могу понять, что не работает.

Это код, который у меня есть на данный момент;

Создавать:

variable_timer = 100;

global.fadeoutsimilarities = 0;

alarm[0] = room_speed * 12;

Шаг:

variable_timer-=1;

Будильник 0:

global.fadeoutsimilarities = global.fadeoutsimilarities + 1;

Рисовать:

if (global.fadeoutsimilarities)
{
   draw_set_color(c_black);
   draw_set_alpha(variable_timer/30);
}

else {}

Любые идеи о том, что мешает ему исчезнуть до черного?


person Gryphonic    schedule 22.03.2019    source источник


Ответы (1)


Варибла global.fadeoutsimilarities = 0; это числовая переменная и при размещении global.fadeoutsimilarities = global.fadeoutsimilarities + 1; вы говорите ему добавить до 1, тогда я буду 1 потом 2, 3, 4, ... и так далее, а в случае рисования вы ставите условное if (global.fadeoutsimilarities) которое означает, что if global.fadeoutsimilarities = 1 он будет черным, но это произойдет только во время кадра в мгновение ока, решение change the values ​​of global.fadeoutsimilarities by true and false, будет выглядеть так:

Создавать:

variable_timer = 10;

global.fadeoutsimilarities = false;

alarm [0] = room_speed * 12;

Шаг:

//without code

Будильник 0:

global.fadeoutsimilarities = true;
variable_timer -=1;

Рисовать:

if (global.fadeoutsimilarities)
{
   draw_set_color (c_black);
   draw_set_alpha (variable_timer / 10);
}

если у вас есть сомнения, напишите мне www.facebook.com/BusyClown

Если я помогу вам чем-то, дайте мне +1

person BusyClown    schedule 22.03.2019