如何创建Jetpack Joyride头奖杠杆动画

时间:2012-10-22 04:24:59

标签: iphone ios uianimation

只是想知道是否有人知道如何重新创建触控杆动作?

http://www.wired.com/geekdad/wp-content/uploads/2011/08/JJ-jackpot.jpg

2 个答案:

答案 0 :(得分:2)

不知道确切的动画是什么,但是如果你必须向下拉动杠杆以激活而不是单击杠杆,那么你需要获得初始触摸位置并将其与最终触摸位置进行比较。当前触摸在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

答案 1 :(得分:1)

你需要可以旋转一点的3d Object来制作动画,或者你可以在动画对象上预渲染所有动画帧(例如 - 你有一个“杠杆”对象)。 / p>

我做过类似的事情 - 我预先渲染了旋转立方体的图像。我将所有这些图像设置为动画帧,如下例所示:http://appsamuck.com/day2.html

我在此UIImageView上方放置了隐形scrollView。然后,当调用scrollViewDidScroll时 - 我只是更改了当前的UIImageView动画帧。

所以在这种情况下 - 它可能是UIScrollView,例如:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

将setContentOffset设置为CGPoint(0,0)点。 (带动画)。

多数民众赞成我的建议。祝你好运!