Game Maker отказов код не woking

Хорошо, так что я делаю один из тех прокрутки шутер типа Galaga игры с помощью Game Maker Studio. Я создал первого врага и создал для него спавнера. Они должны просто лететь вниз к вашему кораблю. Это сработало отлично. Но когда я сделал 2-го врага, я хотел заставить его двигаться медленнее и из стороны в сторону. Я также хотел, чтобы они отскакивали от краев экрана. Но это просто не сработает. Я не могу понять, в чем, черт возьми, проблема, и это сводит меня с ума. Если у кого-то есть какие-то идеи, пожалуйста, поделитесь ими со мной. Если вам нужна дополнительная информация об игре, я могу предоставить ее. Вот код для пошагового события 2-го противника:

    // Control the enemy 
if (y > room_height+16) 
{
    instance_destroy();
}

// Die code
if (armor <= 0)
{
    instance_create(x, y, o_explosion_center);
    instance_destroy();
}

// Bounce off edges
if (x >= room_width-16) 
{
    hspeed = -1;
}

if (x < 16) 
{
    hspeed = 1;
}

1 ответ

  1. Во-первых, вы не сказали, что не работает. Код, который вы разместили, правильный, все зависит от ожидаемого результата.

    Один вопрос я могу увидеть id, если этот код используется двумя врагами. Вы хотите, чтобы они имели разные скорости, но как только они отскочат, их горизонтальная скорость будет 1, потому что вы установите hspeed в 1 и -1. При их создании необходимо задать переменную move_speed, а для отскока записать в событие step :

    hspeed = -1*move_speed   //instead of hspeed = -1
    

    и

    hspeed = move_speed   //instead of hspeed = 1
    

    Таким образом, они сохранят свои начальные скорости.

    Для получения дополнительной помощи, не могли бы вы объяснить, что не работает и опубликовать код создания ?