Я написал здесь функцию, которая должна повернуть мой персонаж на основе координат противника, но это не идеально, потому что он не всегда поворачивается туда, где я хочу, и, возможно, есть лучший способ его написания.
local myPosition = {x = 350, y = 355}
local enemyPosition = {x = 352, y = 354}
local xValue, yValue, xDir, yDir, dirif myPosition.x > enemyPosition.x then
xValue = myPosition.x - enemyPosition.x
elseif myPosition.x < enemyPosition.x then
xValue = myPosition.x - enemyPosition.x
else
xValue = 0
endif myPosition.y > enemyPosition.y then
yValue = myPosition.y - enemyPosition.y
elseif myPosition.y < enemyPosition.y then
yValue = myPosition.y - enemyPosition.y
else
yValue = 0
endif xValue < 0 then
xDir = "TURN RIGHT"
elseif xValue > 0 then
xDir = "TURN LEFT"
endif yValue < 0 then
yDir = "TURN DOWN"
elseif yValue > 0 then
yDir = "TURN UP"
endif xValue > yValue then
dir = xDir
elseif xValue
dir = yDir
endprint("Turn: " .. dir)
И здесь у вас есть несколько фотографий, чтобы еще раз иллюстрировать то, что я имею в виду:


Как вы можете видеть на рисунках, направление зависит от большего числа. Если X больше Y (оба, отрицательные и положительные значения), тогда поверните символ RIGHT или LEFT в зависимости от того, является ли он отрицательным или положительным.