限制到达地图边界或任何对象时的移动

时间:2011-11-15 12:47:52

标签: c# xna

我在游戏开发方面是全新的,想知道上述问题的最佳实践。

让我解释一下。

我想创建具有自上而下视图和自由移动的2D游戏(无需捕捉到网格),就像GameBoy上的任何塞尔达游戏一样。

我应该如何存储地图边界?有没有办法自动执行此操作?例如,我有一个背景和纹理的纹理与前景,其中黑色应该显示为透明,并应允许在其空间移动。

提前致谢。

1 个答案:

答案 0 :(得分:1)

为了便于2D碰撞检测,您可能会实现边界框。

基本上,您将创建一个代表每个游戏对象的矩形。矩形的坐标和大小将与Texture2D相同(通常将其作为给定类的属性)。每次更新纹理的位置时,都会更新边界框的位置。

现在要检查碰撞,只需遍历游戏对象,看看是否有任何边界框相交。

一旦你明白了,你会发现它非常容易实现。 XNA还提供了一些数学助手来抽象数学(尽管它的简单加法和减法)。

尝试使用以下代码示例进行更深入的解释:http://www.dreamincode.net/forums/topic/180069-xna-2d-bounding-box-collision-detection/