Как заставить NPC следовать за мной в Gamemaker Studio 1.4

Я пытался заставить NPC, в моем случае зомби, следовать за мной в моей игре, конечно, безрезультатно. Я использую следующий скрипт для перемещения моего персонажа

if(keyboard_check(vk_left)){
    sprite_index = spr_player;
    x -= 4;
}

if(keyboard_check(vk_right)){
    sprite_index = spr_player;
    x+= 4;
}

if(keyboard_check(vk_down)){
    sprite_index = spr_player;
    y += 4;
}

Имя объекта NPC (obj_zombie).


person Community    schedule 29.09.2017    source источник
comment
Здесь вы можете найти лучшие ответы: gamedev.stackexchange.com   -  person ethan codes    schedule 29.09.2017


Ответы (2)


Глядя на простую систему, которую вы используете для перемещения объекта игрока, вы можете просто заставить другой объект следовать за другим объектом (объект за объектом), используя move_towards_point(x,y,speed); функция в событии шага объекта-зомби следующим образом:

move_towards_point(obj_Player.x, obj_Player.y,5);

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

Чтобы изменить направление движения спрайта, вы можете просто проверить направление движется объект, и в зависимости от этого может измениться спрайт или может измениться масштаб спрайта.

if (direction > 90) and (direction < 270) {
   // left direction
} else {
   // right direction
}

Примечание. Ссылки на некоторый текст в этом ответе перенаправляют вас на справочную документацию по коду студии производителя игр.

person klys    schedule 30.09.2017

Как сказал Jr Jimnz, в этом случае лучше использовать move_towards_point(x,y,speed), лично я тоже использую эту систему в некоторых случаях! или же вы можете использовать функцию знака:

 if (instance_exists(//insert your player object here)) {
 x += sign(//player object.x - x);
 y += sign(//player object.y - y);}

но система знаков не очень удобна.

Извините за мой плохой английский.

person Envy    schedule 04.01.2019