0

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

我的对象:

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 - enterFrame,随着线旋转的每一次变化都将朝着同一个方向移动。如果 myCircle 在 obj.x 和 obj.y.. 或 myLine.x 和 myLine.y 中,它工作正常。但我需要,myCirle 就像在 myLine 的 1 端一样。像这样的东西,但更好:

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
..

等等,我想你明白了。

我只需要得到这个:

  *
 /
/

*
|
|

..

感谢您的帮助。

4

1 回答 1

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。

于 2013-10-23T00:48:47.793 回答