Я использую некоторые вещи, которые я собрал из разных методов по всему миру, чтобы сделать эту работу еще моими пулями, летящими в казалось бы случайных направлениях. Я пробовал бросать отрицательные знаки перед вещами и переключать триггер, но безрезультатно. Я попытался использовать вращение руки игрока, потому что это точно указывает на мышь пользователя, но это не дало мне больше точности.2D Lua - Скорость пули неверна и предсказуема
Я попытался определить, следуют ли пули по шаблону, как мне нужно, чтобы инвертировать переменную Y для моей руки, но я не могу найти шаблон здесь.
local x, y = objects.PlayerArm:GetPos()
local bullet = createBullet(x + objects.Player:GetWide(), y)
local mX, mY = gui.MouseX(), gui.MouseY()
local shootAngle = math.atan2((mY - y), (mX - x))
shootAngle = math.deg(math.Clamp(shootAngle, -90, 90))
--shootAngle = objects.PlayerArm.Rotation
bullet.VelocityX = math.cos(shootAngle) * 5
bullet.VelocityY = math.sin(shootAngle) * 5
--bullet.Rotation = shootAngle
print("Angle", shootAngle, "Velocity X and Y", bullet.VelocityX, bullet.VelocityY)
Вот некоторые из того, что было напечатано на консоли каждый раз, когда я выстрелил в пулю.
Угол +47,920721521 Скорость Х и Y -3,4948799788437 -3,5757256513158
Угол +24,928474135461 Скорость Х и Y 4,8960495864893 -1,0142477244922
Угол 16,837472625676 Скорость Х и Y -2,1355174970471 -4,5210137159497
Угол 10,684912400003 Скорость X и Y -1.5284445365972 -4.7606572338855
Угол -1.029154804306 Скорость X и Y 2.5777 162320797 -4,2843178018061
Угол -11,63363399894 Velocity X и Y 2,978190104641 4,0162648942293
Угол -22,671343621981 Velocity X и Y -3,8872502993046 3,1447233758403
http://i.gyazo.com/e8ed605098a91bd450b10fda7d484975.png
Нужно ли использовать радианы вместо градусов? – iamnotmaynard
О, мужчина, большое вам спасибо. Я оставил shootAngle в качестве радианов и изменил math.sin (shootAngle) на math.sin (-shootAngle) и зафиксировал его. – Exho