碰撞检测动画?

时间:2010-12-15 22:29:28

标签: android animation collision-detection

我无法找出使用碰撞检测设置动画的最佳方法。我有一个功能齐全的falldown版本(流行的计算器游戏),使用处理程序和onDraw()为行和位图球绘制矩形。但是,这个动画会跳过(看起来很迟钝),所以我试图将动画切换到补间动画。

我的问题是概念性问题:如何在动画中检测到碰撞?我认为侧面动画采用以下两种方式之一: a)我以非常小的步骤制作动画。但是,我认为这看起来和当前的动画设置一样糟糕。 b)我一直在屏幕的左侧或右侧设置动画,但动画中的每一步都会检查以确保球没有穿过一排。

球的向下运动面临着类似的问题。是否可以不断访问/更新球的位置(存储为整数),然后如果与某些东西发生碰撞则将动画缩短?当且仅当它不在行的一部分上方时,是否可以让球向下动画?必须有一些方法来检测动画内部的碰撞,但我不知道如何。

编辑:如果动画类不适合游戏,我应该如何为我的游戏制作动画?就像我说的那样,即使我将延迟设置为1毫秒,我所使用的处理程序 - 提取系统也会使球跳过。

1 个答案:

答案 0 :(得分:2)

用于UI画布绘制方法的一个线程和用于游戏逻辑/任何非UI相关的一个线程。

一个线程更新对象位置等...而另一个UI线程只是将它们绘制到屏幕上。

在这个庄园中你的游戏逻辑线程是连续的,并且在每条路径上更新X,Y位置并处理诸如碰撞检测之类的东西......绘制线程只需要更新X,Y位置并将位图绘制到画布上。 / p>

您可以使用SurfaceView作为绘制位图/图像/精灵集合的画布。您可以查看Google提供的众多Android游戏示例,快速而肮脏地了解这是如何实现的,但这通常是我上面所描述的。