我之前问了类似这样的问题,但我并没有具体说明我的想法。有一张箭头的图片,当它被触摸并且你的手指四处移动时,我希望箭头向上和向下缩放并旋转,这样箭头的指针端就在你的手指上,箭头的中间始终保持不变它在哪里(箭头围绕中心点移动)。谢谢你的帮助!
答案 0 :(得分: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)
此代码未经测试,可能需要调整,但它应该让您入门。