タッチレバーアクションを再現する方法を誰かが知っているかどうか疑問に思っていますか?
http://www.wired.com/geekdad/wp-content/uploads/2011/08/JJ-jackpot.jpg
タッチレバーアクションを再現する方法を誰かが知っているかどうか疑問に思っていますか?
http://www.wired.com/geekdad/wp-content/uploads/2011/08/JJ-jackpot.jpg
正確なアニメーションが何であるかはわかりませんが、レバーをクリックするだけでなく、レバーを下に引いてアクティブにする必要がある場合は、最初のタッチ位置を取得して、最後のタッチ位置と比較する必要があります。現在のタッチが2つの開始位置と終了位置の間にあるパーセンテージによって、使用されているアニメーションのフレームが決まります。
したがって、レバーアニメーションに10フレームあるとします。
function lengthOf(a, b)
local width, height = b.x-a.x, b.y-a.y
return (width*width + height*height)^0.5
end
local startBox, endBox
local beingPulled = false
if isOver(touchPos, startBox) and touch.phase == "began" then
beingPulled = true
end
if touch.phase == "moved" then
if beingPulled then
local lengthA = lengthOf(touch, startBox)
local lengthB = lengthOf(touch, endBox)
local totalLength = lengthA+lengthB
local percentage = totalLength/lengthA
lever:setFrame( math.ceil(percentage*10) )
end
end
if touch.phase == "ended" then
lever:resetPosition()
beingPulled = false
end
そのアニメーションを作成するには、少し回転できる3dオブジェクトが必要です。または、オブジェクトのアニメーション化時にすべてのアニメーションフレームを事前にレンダリングすることもできます(たとえば、「レバー」オブジェクトがあります)。
私は似たようなことをしました-回転する立方体の画像を事前にレンダリングしました。次の例のように、これらすべての画像をアニメーションフレームとして設定しました:http://appsamuck.com/day2.html
そして、この上に非表示のscrollViewを配置しましUIImageView
た。それから、scrollViewDidScroll
呼び出されたとき-私は単に現在のUIImageView
アニメーションフレームを変更しました。
したがって、この場合-それは-である可能性がありますUIScrollView
-たとえば:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
PointにContentOffsetを設定しCGPoint(0,0)
ます。(アニメーション付き)。
それが私の提案です。幸運を!