Я написал здесь функцию, которая должна поворачивать моего персонажа на основе координат врага, но она не идеальна, потому что она не всегда поворачивается туда, куда я хочу, и, возможно, есть лучший способ написать это
local myPosition = {x = 350, y = 355}
local enemyPosition = {x = 352, y = 354}
local xValue, yValue, xDir, yDir, dir
if myPosition.x > enemyPosition.x then
xValue = myPosition.x - enemyPosition.x
elseif myPosition.x < enemyPosition.x then
xValue = myPosition.x - enemyPosition.x
else
xValue = 0
end
if myPosition.y > enemyPosition.y then
yValue = myPosition.y - enemyPosition.y
elseif myPosition.y < enemyPosition.y then
yValue = myPosition.y - enemyPosition.y
else
yValue = 0
end
if xValue < 0 then
xDir = "TURN RIGHT"
elseif xValue > 0 then
xDir = "TURN LEFT"
end
if yValue < 0 then
yDir = "TURN DOWN"
elseif yValue > 0 then
yDir = "TURN UP"
end
if xValue > yValue then
dir = xDir
elseif xValue
dir = yDir
end
print("Turn: " .. dir)
И здесь у вас есть несколько фотографий, чтобы проиллюстрировать, что я имею в виду:
![enter image description here](https://i.stack.imgur.com/GYmQd.png)
![enter image description here](https://i.stack.imgur.com/u4pn5.png)
![enter image description here](https://i.stack.imgur.com/rtCtC.png)
Как видно на рисунках, направление зависит от большего числа.Если X больше, чем Y (отрицательные и положительные значения), поверните символ ВПРАВО или ВЛЕВО в зависимости от того, отрицателен он или положителен.