Код возврата Game Maker не работает

Итак, я делаю один из тех скролл-шутеров типа Galaga, используя Game Maker Studio. Я создал первого врага и настроил для него спаунер. Они должны просто лететь вниз к вашему кораблю. Это работало нормально. Но когда я сделал второго врага, я хотел, чтобы он двигался медленнее и из стороны в сторону. Я также хотел, чтобы они отскакивали от краев экрана. Но это просто не сработает. Я не могу понять, в чем, черт возьми, проблема, и это сводит меня с ума. Если у кого-то есть идеи, пожалуйста, поделитесь ими со мной. Если вам нужна дополнительная информация об игре, я могу предоставить ее. Вот код пошагового события 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;
}

person GlintLock    schedule 05.05.2016    source источник
comment
Не могли бы вы опубликовать код для события создания?   -  person Tonkleton    schedule 06.05.2016


Ответы (1)


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

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

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

а также

hspeed = move_speed   //instead of hspeed = 1

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

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

person An intern has no name    schedule 17.06.2016