GameMaker: Как временно заморозить врагов?

Я попытался установить Enemy.path_speed=0, а затем установить сигнал тревоги [0] = 5, когда он доходит до alarm[0], он просто снова устанавливает Enemy.path_speed=100 (значение по умолчанию). Но это не работает. враги застыли навсегда. Как еще я могу временно заморозить врагов, когда я нажму на пробел?


person Gavin Z.    schedule 26.05.2014    source источник


Ответы (2)


path_speed = 0 и path_speed = 100 не очень хорошая идея. Например, объекты могут иметь разную скорость. Я использую коэффициент скорости, например speed = normal_speed * k, где k равно 1 для нормальной скорости и 0 для полной остановки.

Событие создания врага:

spd = irandom_range(5, 10) // different speed, just as example
path_start(path0, spd, 1, true)
path_position = random(1)
k = 1

Событие «Шаг врага»:

path_speed = spd * k

Событие нажатия клавиши пробела контроллера:

with (o_enemy)
     k = 0

alarm[0] = 3 * room_speed

Событие контроллера Alarm0:

with (o_enemy)
     k = 1

И завершил gm-проект

person Dmi7ry    schedule 26.05.2014

Вы только что поставили будильник. Вы никогда не уменьшаете его. поэтому ваше утверждение никогда не бывает верным, и, следовательно, объекты не двигаются.

person Jonathan Greene    schedule 07.07.2017