2013-10-21 3 views
0

나는 이전과 비슷한 질문을했지만 나는 내가 원하는 것에 구체적이지 않았다. 화살표가 그려져 있고 손가락이 움직이면 화살표가 위아래로 회전하여 화살표의 포인터 끝이 손가락에 있고 화살표의 가운데는 항상 머물러 있어야합니다. 그것이 어디에 있는지 (화살표는 중심점을 따라 움직입니다). 당신의 도움을 주셔서 감사합니다!코로나 SDK의 화살표를 가리키는 화살표가 있습니까?

답변

0

화살표의 x, y 및 터치 이벤트 x 사이의 각도를 계산할 수 있습니다. 이 같은 Y 뭔가 그런 다음 화살표, 당신은 아마 가장 긴 쪽의 트랙을 유지, 화살표의 원래 크기를 저장해야합니다 크기에

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

터치 이벤트에는 "이동 됨"단계가 있으며 여기에서이 코드를 삽입 할 위치입니다. 터치 드래그 샘플 프로젝트를 연구해야한다. –

관련 문제