【发布时间】:2013-02-17 07:34:33
【问题描述】:
我目前正在创建一个 android java 游戏。一种登月类游戏。我希望实现某种障碍,并且已经选择了将随机放置在屏幕上的小行星。
但是,我很难理解如何为这些进行碰撞检测。我将使用小行星的图像,因此可以轻松地为每个图像使用矩形边界框,但由于小行星是圆形的(或者至少我的将是圆形的!),当移动到矩形的角上时可以检测到碰撞,这在视觉上不是小行星的一部分。
我猜我需要使用某种边界圆,但不确定如何使用图像进行设置?
我想,如果所有小行星的大小都相同,我可以硬编码一些点作为圆形/多边形边界框,然后将这些点转换为图像的位置 - 所以实际上,多边形就是小行星的形状?
有关执行此操作的最佳方法的任何建议都会很棒。此外,如果有人可以编写一些高级碰撞检测伪代码,那将不胜感激:)
【问题讨论】:
-
圆形的问题在哪里?您可以像
collision = distance(c1.center,c2.center) < c1.radius+c2.radius一样简单地做一些事情。 -
着陆器是长方形的,小行星是圆形的——很抱歉没有把它说得更清楚。
标签: java android collision-detection bounding-box