0

我之前问过类似的问题,但我并没有具体说明我想要什么。有一个箭头的图片,当它被触摸并且你的手指移动时,我希望箭头上下缩放并旋转,使箭头的指针末端在你的手指上,并且箭头的中间始终保持不变它在哪里(箭头围绕中心点移动)。谢谢你的帮助!

4

1 回答 1

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)

此代码未经测试,可能需要调整,但它应该可以帮助您入门。

于 2013-10-21T23:26:12.860 回答