2013-09-21 74 views
0

我得到了簡單的問題,但非常困難和不好的解決方案,我需要你的幫助。 我只是想在MYLINE X,Y myCircle,但隨着轉速的變化,這是不好的,所以..Corona SDK - 用線條旋轉計算球的位置

我的對象:

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

等等,我覺得你的想法。

所有我需要的是讓這樣的:

* 
/
/

* 
| 
| 

..

THX的任何幫助。

+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,代替x代替sin。