0

我有一个小迷你游戏的图像/角色。我可以让他左右跳动。但我希望他能够降落在其他图像上,例如超级马里奥降落在砖块上或涂鸦跳跃(没有跳跃)。我该如何做到这一点,一旦我的图像跳跃和下降,如果它落在另一个图像上它就会停止。谢谢!

我的跳跃代码:

[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];
4

1 回答 1

0

我不相信这可以用简单的UIView动画来完成,这更像是一Cocos件事。使用这种类型的动画,您需要记住一些事情。尽管在屏幕上您会看到从一个点到另一个点的动画,但在整个过程中,该图像实际上只有两帧。它是动画开始之前的帧,以及结束时的帧。

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

话虽如此,这种形式的动画没有碰撞检测的空间。让我们看看下面的场景。

_ A _ ============= _ B _ ========== _ C _

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

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

希望这可以帮助!

于 2012-08-05T08:08:27.513 回答