Сделай в begin_step врага if health <= 0{instance_destroy();} да и всё или в end_step или просто в step, либо у самой пули проверь при столкновении, что у врага 0 хп и удали врага через with(other) {if hp <= 0 instance_destroy()}
Дело не в ходьбе, а в банальном непонимании как работают события. Смотри, код работает сверху-вниз, всё выполняется линейно, вначале узнай как и когда работает любое событие, затем обнаружь как и что делает что-то