我有一个小型迷你游戏的图像/角色。我可以让他跳,左右转。我希望他能够登陆其他图像,如超级马里奥登陆砖块或涂鸦跳跃(没有跳跃)。一旦我的图像跳跃和摔倒,我该怎么做呢,如果它落在另一个图像上它会停止。谢谢!
我的跳跃代码:
[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];
答案 0 :(得分:0)
我不相信这可以通过简单的UIView
动画完成,这更像是Cocos
的事情。使用这种类型的动画,你需要记住一些事情。虽然在屏幕上你会看到一个动画从一个点到另一个点的图像,但在整个过程中,图像实际上只有两个帧。它是动画开始前的帧,最后是帧。
此外,如果您在动画开始后尝试读取图像的帧,它将始终记录其结束位置。前后只有两帧图像。一旦动画开始,它的帧被设置为它的结束帧,它基本上只是在努力到达那里。 (动画)
这就是说,这种动画形式没有碰撞检测的余地。我们来看看以下情况。
_ <强> A _ 强> =============的 _ 乙 _ 强> ========== _ C _
^ start ^ ------- ^ path ^ ---- ^ collision -------- ^ end
您的动画从第“A”帧开始,并设置为在“C”点结束。你想要检测“B”处的碰撞,但遗憾的是你不能,因为图像永远不会知道它的帧与“B”相交,因为它只知道点“A”和“C”
希望这有帮助!