2013-10-21 104 views
0

我剛纔問了一個類似的問題,但我沒有具體說明我想要什麼。有一張箭頭的圖片,當它被觸摸並且手指四處移動時,我希望箭頭按比例放大和縮小並旋轉,以便箭頭的指針末端位於您的手指上,並且箭頭的中間始終停留在哪裏(箭頭圍繞中心點移動)。謝謝你的幫助!箭頭指向Corona SDK中的手指?

回答

0

您可以計算箭頭的x,y和觸摸事件的x之間的角度。 Ÿ是這樣的:

local tan = math.abs(arrow.y-event.y)/math.abs(arrow.x-event.x); 
local atan = math.atan(tan); -- (result in radians) 
local angle = atan * 180/math.pi; -- converted to degrees 
arrow.rotation = angle 

然後大小的箭頭,你需要保存箭頭的原始大小,可能保持最長邊的軌跡:

local arrowLength = 100 -- for instance 
local dX = event.x - arrow.x 
local dy = event.y - arrow.y 
local distance = math.sqrt(dx*dx + dy*dy) 
local scale = distance/arrowLength 
arrow:scale(scale, scale) 

此代碼是未經測試,可能需要調整,但它應該讓你開始。

+0

我如何得到這個規模和實時旋轉?我將它插入觸摸事件中,但它只能放大一次,並且每次點擊都會輕微旋轉。對不起,所有的問題,但這是我需要完成我的測試應用程序的最後一塊! –

+0

觸摸事件有一個「移動」階段,這是你將這個代碼放在哪裏。確保學習觸摸拖動示例項目。 –