次のコードがあります。
deg = 0.0;
local function onTouch(event)
if(event.yStart >= event.y) then
deg = deg + 10;
elseif(event.yStart <= event.y) then
deg = deg -10;
end
rads = deg * (math.pi /180.0);
x = 100.0 * math.cos(rads);
y = 100.0 * math.sin(rads);
rect.x = magnet.x + x;
rect.y = magnet.y + y;
end
ある意味では機能しますが、完全には機能しません。私がやろうとしているのは、ユーザーがオブジェクトをドラッグすると時計回りに回転することです。ユーザーが下にドラッグすると、オブジェクトは反時計回りに回転します (回転とは、別のオブジェクトを周回することを意味します)。
私が抱えている問題は、ユーザーが上下にドラッグすると、度が上下に増加し続けることです。したがって、方向を変更するときは、方向を変更するために効果的に 0 までインクリメントする必要があります。オブジェクトの位置をねじ込むことなく、可変角度を効果的にリセットする方法がわかりません。
事前に感謝します。
編集
コードを見た後、問題は私が上で述べたものではないことに気づきました。問題は、方向を変えると event.yStart がリセットされないことです!
したがって、200px を開始すると仮定すると、上にドラッグすると、200px を超えている限り増加します (上にドラッグしても下にドラッグしても、200px を下回るまで減少し始めません)。