Ошибка в том, что твой персонаж сталкивается с его "смертоносным убийцей" и видимо застревает (событие столкновения проигрывается все время) и из-за этого alarm[3] все время перезаписывается на 20 -> ты никогда не дождешься его выполнения, пока идет столкновение.
Какой вариант решения?
Ну, первое - это можно действовать по примеру Глюка:
Код
if (health <= 0) && (alarm[3]<1)
{
alarm[3] = 20;
sprite_index = spr_death;
}
Второй способ - это сразу перемещать игрока от его "убийцы" (но это неразумно).
Третий способ - использовать не alarm, а собственный счетчик времени. Использовать его можно различными способами. Пример:
Код
//Create:
death = 0;
//Step
if (death>=20)
{
//тоже, что и у тебя в alarm'e
}
if (death>0)
{
death+=1;
}
//Collision with "смертеубийца"
if (health <= 0) && (alarm[3]<1)
{
death+=1;
sprite_index = spr_death;
}
P.S. А вообще много вариантов исполнения смерти при столкновении
Так, что копайся и еще раз копайся. Возможно, найдешь клад =)