【发布时间】:2015-07-23 17:41:11
【问题描述】:
我不知道如何处理或解决这个问题。我看过一些教程,但它们适用于已经知道自己在做什么的程序员。我观看了一段关于如何执行适用于常规边界框的像素碰撞形式的视频,如果边界框发生碰撞,它会检查两个相交框中的任何非透明像素是否重叠。如果他们这样做,那么布尔值将返回一个真值。我在哪里以及如何开始在旋转对象中实现边界框轴的更改以补充纹理的外观?我不喜欢被指向外部教程,因为我读过的大多数教程都假设程序员知道作者所说的一切。
我还查看了一些完美地展示了我正在寻找的源代码,但似乎我还需要一个非常深入的解释才能使用阅读代码。
【问题讨论】:
-
您确定您真的需要像素完美碰撞检测吗?您玩过的几乎所有游戏都使用简单的边界形状。它更易于实施并提供更好的性能。
-
我不需要像素完美碰撞,但我的理解是它是最准确的?我还没有详细了解如何进行其他类型的 2d 碰撞,但我观看的视频中像素碰撞背后的概念似乎很简单,我直接将其放入我的游戏中。我主要关心的是让碰撞看起来很真实并且不会碰到任何透明像素,在这种情况下它可以解决任何不旋转的精灵。
-
通常放置紧密的边界形状就足够了。大多数玩家甚至不会注意到差异。您可以使用圆形、矩形或多边形,甚至可以将它们组合成其他更复杂的形状。查看代码和网络物理编辑器,了解其工作原理
-
这在 XNA 论坛中出现了很多。 pixel perfect collision 或 per-pixel collision 这个名字似乎向新开发人员暗示了他们必须做的事情是有一个半-体面的游戏,实际上边界框绰绰有余,正如其他人在上面提到的那样。 BB 速度要快得多,如果您确实需要更高的精度,请使用嵌套边界框。
标签: c# xna collision-detection