Я предполагаю, что у вас есть переменная, определяющая направление противника. Кроме того, предполагая, что вы просто используете четыре кардинала направлений.
Вы можете просто провести сравнение врагов. x, y Координаты по сравнению с игроками.
код Суд:
if enemy x > player x // player is to the left of the enemy
enemy face left
else if enemy x < player x // player is to the right of the enemy
enemy face right
else if enemy y > player y // player is below the enemy
enemy face down
else
enemy face up
Это сделает ваши враги почти всегда сталкиваются влево/вправо. Вы можете получить больше участия, как только получите эту работу, сравнив дельт врага. x/y по сравнению с игроком x/y.
Что-то вроде:
delta x = abs(player x - enemy x)
delta y = abs(player y - enemy y)
if delta x > delta y // Enemy is further away on the x axis than the y axis
make a choice of facing left/right
else
make a choice of facing up/down
Надеется, что это поможет вам начать работу.
Вы хотите, чтобы противник оказался лицом к игроку ровно (360 градусов) или только 8 направлений, против которых движется ваш враг? – Aaron
Вы поняли это? –