我有一个物理体,我希望它朝着它面向的方向前进.我只有十三个,我希望解释为什么我在三角学方面如此糟糕.有谁能告诉我如何在Corona这样做?
我会假设你想用力推动你的物体.无论哪种方式,我们都需要获得身体所面向方向的x和y分量.以下是从旋转角度获取x和y的方法:
-- body is your physics body
local angle = math.rad(body.rotation) -- we need angle in radians
local xComp = math.cos(angle) -- the x component
local yComp = -math.sin(angle) -- the y component is negative because
-- "up" the screen is negative
Run Code Online (Sandbox Code Playgroud)
(注意:如果这不能给出面向方向,则可能需要在角度上添加90度,180度或270度,例如:math.rad(body.rotation + 90))
上面的代码将为您提供旋转方向上单位向量的x和y分量.你可能还需要一些倍增器来获得你想要的力量.
local forceMag = 0.5 -- change this value to apply more or less force
-- now apply the force
body:applyLinearImpulse(forceMag*xComp, forceMag*yComp, body.x, body.y)
Run Code Online (Sandbox Code Playgroud)
这是我得到数学的地方:http://www.mathopenref.com/trigprobslantangle.html.使用单位向量简化了数学运算,因为斜边始终为1