在Corona SDK中如何将箭头指向手指?

我之前问过类似的问题,但我没有具体说明我想要什么。有一张箭头的图片,当你触摸并移动手指时,我希望箭头可以缩放和旋转,以便箭头的指针端在手指处,而箭头的中间始终保持在原位(箭头围绕中心点移动)。谢谢你的帮助!

点赞
用户1870706
用户1870706

你可以计算箭头的 x、y 和触摸事件的 x、y 之间的角度,方法如下:

local tan = math.abs(arrow.y-event.y) / math.abs(arrow.x-event.x);
local atan = math.atan(tan); --(结果为弧度)
local angle = atan * 180 / math.pi; -- 转换为角度
arrow.rotation = angle

然后,要改变箭头的大小,你需要保存箭头的原始大小,可能跟踪最长的一边:

local arrowLength = 100 -- 例如
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-21 23:26:12