图像停在其他图像上

时间:2012-08-05 03:53:26

标签: objective-c ios xcode cocoa-touch

我有一个小型迷你游戏的图像/角色。我可以让他跳,左右转。我希望他能够登陆其他图像,如超级马里奥登陆砖块或涂鸦跳跃(没有跳跃)。一旦我的图像跳跃和摔倒,我该怎么做呢,如果它落在另一个图像上它会停止。谢谢!

我的跳跃代码:

[UIView animateWithDuration:.5 delay:0.0
                options:UIViewAnimationOptionCurveEaseOut
             animations:^{
                 CGRect f = imageView.frame;
                 f.origin.y -= 40;
                 imView.frame = f;
             }
             completion:^(BOOL finished){

[UIView animateWithDuration:.7 delay:0.0
                options:UIViewAnimationOptionCurveEaseOut
             animations:^{
                 CGRect f = imageView.frame;
                 f.origin.y += 40;
                 imView.frame = f;
             }
             completion:nil];

1 个答案:

答案 0 :(得分:0)

我不相信这可以通过简单的UIView动画完成,这更像是Cocos的事情。使用这种类型的动画,你需要记住一些事情。虽然在屏幕上你会看到一个动画从一个点到另一个点的图像,但在整个过程中,图像实际上只有两个帧。它是动画开始前的帧,最后是帧。

此外,如果您在动画开始后尝试读取图像的帧,它将始终记录其结束位置。前后只有两帧图像。一旦动画开始,它的帧被设置为它的结束帧,它基本上只是在努力到达那里。 (动画)

这就是说,这种动画形式没有碰撞检测的余地。我们来看看以下情况。

  

_ <强> A _ =============的 _ _ ========== _ C _

     

^ start ^ ------- ^ path ^ ---- ^ collision -------- ^ end

您的动画从第“A”帧开始,并设置为在“C”点结束。你想要检测“B”处的碰撞,但遗憾的是你不能,因为图像永远不会知道它的帧与“B”相交,因为它只知道点“A”和“C”

希望这有帮助!