2010-12-15 53 views
3

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

我的问题是一个概念性问题:我如何检测动画中的碰撞?我将侧身动画看作两条路线中的一条: a)我以非常小的步幅进行动画制作。不过,我想这会和当前的动画设置一样糟糕。 b)我一直在屏幕的左边或右边设置一个动画,但动画中的每一步都会检查以确保球没有穿过一排。

我面临与球的向下运动类似的问题。是否有可能不断地访问/更新球的位置(以整数形式存储),然后在动画与其他东西碰撞时将其缩短?当且仅当它不在某一行的上方时,是否有可能让球成为动画?必须有某种方法来检测动画中的碰撞,但我不知道如何。

编辑:如果动画课不适合游戏,我该如何动画我的游戏?就像我所说的,即使当我将延迟设置为1毫秒时,处理程序提取系统也会让球跳过。

+2

Animation类和android-manifest.xml定义的动画不适合任何形式的游戏使用。他们只是在GUI中移动东西。 – 2010-12-15 22:35:32

+0

你可以看看gamedev.stackexchange.com以获得更好的解答游戏特定问题。 – 2010-12-15 22:36:49

+0

马克是正确的..你不应该使用动画 – Snailer 2010-12-16 00:06:53

回答

2

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

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

在这个庄园中,您的游戏逻辑线程是连续的,并且在每个路径上更新X,Y位置并处理碰撞检测等事情......绘制线程只需要更新X,Y位置并将位图绘制到画布上。

您可以使用SurfaceView作为绘制位图/图像/精灵集合的画布。您可以查看Google提供的众多Android游戏示例,以快速查看如何完成此操作,但通常我是如上所述。

+0

请链接至提及的示例。 – ezaspi 2017-10-28 12:33:00