我有一个物理身体,我希望它朝着它面向的方向前进。我只有十三个,我希望解释为什么我在三角学方面如此糟糕。有谁能告诉我如何在Corona中做到这一点?
答案 0 :(得分:5)
我会假设你想用力推动你的物体。无论哪种方式,我们都需要获得身体所面向方向的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
(注意:如果这不会给出面向方向,则可能需要在角度上添加90度,180度或270度,例如:math.rad(body.rotation + 90))
上面的代码将为您提供旋转方向上unit vector的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)
这是我得到数学的地方:http://www.mathopenref.com/trigprobslantangle.html。使用单位向量简化了数学运算,因为斜边总是1
答案 1 :(得分:0)
在使用令人困惑的物理学之前,如何让自己的角色朝着一个角度移动?
angle = math.rad(Insert the angle you want here)
character.x = character.x - math.sin(angle)
character.y = character.y + math.cos(angle)
答案 2 :(得分:-1)
尔。您不需要Trigonometry来移动对象。
添加
object:translate(distanceToMoveInXAxis,distanceToMoveInYAxis)
或者如果您想要进行转换,
transition.to(object,{x=object.x + distanceToMoveInXAxis,y=object.y + distanceToMoveInYAxis})