Corona SDK - 用线旋转计算球的位置

时间:2013-09-21 07:46:27

标签: lua corona

我有一个简单的问题,但是非常困难和糟糕的解决方案,我需要你的帮助。 我只想在myLine x,y中使用myCircle,但是随着旋转的改变,这很糟糕,所以...

我的对象:

My "obj" is working well..

myLine = display.newRect( obj.x, obj.y , 150, 5 )
myCircle = display.newCircle( myLine.x, myLine.y, 8 )

我得到了每个enterFrame:

myLine.x = obj.x
myLine.y = obj.y
myLine.rotation = obj.rotation

myCircle.x = myLine.x
myCircle.y = myLine.y

它工作得很好..但是,我需要做的,myCircle for runtime - enterFrame,每次线条旋转的变化都会朝着同一个方向移动。如果myCircle是,它工作正常 在obj.x和obj.y ..或myLine.x和myLine.y中。 但是我需要,myCirle就像myLine的一端...... 这样的事情,但更好:

if rotation == 0 then
   myCircle.x = myLine.x
   myCircle.y = myLine.y - 30
elseif rotation == 90 then
   myCircle.x = myLine.x + 30
   myCircle.y = myLine.y
end
..

依此类推,我想你明白了。

我所需要的只是得到这个:

  *
 /
/

*
|
|

...

请求任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为你要做的是旋转一条线,但让圆圈留在线的末端。如果这是你想要做的,那么math.sin()和math.cos()就是你所需要的。

myCircle.x = myLine.x + 30 * math.cos(rotation) --30 would be the length of the line.
myCircle.y = myLine.y + 30 * math.sin(rotation)

应该有效,但如果没有,请尝试使用cos代替y而使用sin代替x。