【问题标题】:animation with collision detection?带有碰撞检测的动画?
【发布时间】:2010-12-15 22:29:28
【问题描述】:

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

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

我在球的向下运动中遇到了类似的问题。是否可以不断访问/更新球的位置(存储为整数),然后在与某物碰撞时缩短动画?当且仅当它不在一行的上方时,是否可以让球向下动画?必须有某种方法来检测动画内部的碰撞,但我不知道如何。

编辑:如果动画类不适合游戏,我应该如何为我的游戏制作动画?就像我说的,即使我将延迟设置为 1 毫秒,我拥有的 handler-ondraw 系统也会让球跳来跳去。

【问题讨论】:

  • Animation 类和 android-manifest.xml 定义的动画不适合任何类型的游戏使用。他们只是在 GUI 中移动东西。
  • 您可以查看 gamedev.stackexchange.com 以获得更好的游戏特定问题的答案。
  • 马克是对的......你不应该使用动画
  • 请提供示例链接。

标签: android animation collision-detection


【解决方案1】:

一个线程用于 UI 画布绘制方法,一个线程用于游戏逻辑/与 UI 无关的任何事物。

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

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

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

【讨论】:

  • 请链接到提到的例子。
猜你喜欢
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 2017-08-28
  • 2021-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多