Второй способ с таймером может быть более удобен тем, кто не хочет прибегать к большему количеству скриптов, заменяя их на одну единственную управляющую конструкцию.
Этот способ может быть реализован как с помощью GML, так и без него. В Create создаем переменную can_shoot и присваиваем ей значение 1 (или значение true, так как суть будет аналогичная. Я же использую циферный вариант, так как написать один символ проще, чем четыре, а работая с многими логическими операциями в общей сложности разница в количестве написанных символов будет достаточно велика). Так же, создаем переменную cooldown, присваивая ей, например, значение 5.
В событии нажатия пробела устанавливаем проверку переменной can_shoot и, если она равна 1, то присваиваем ей значение 0, задаем таймеру время, равное cooldown и создаем обьект пули. В событии таймера присваиваем can_shoot значение 1.
Скриптом это будет выглядеть так:
Code
if (can_shoot = 1) {
can_shoot = 0
alarm[0] = cooldown
instance_create(x,y,o_bullet)
}