我在游戏开发方面是全新的,想知道上述问题的最佳实践。
让我解释一下。
我想创建具有自上而下视图和自由移动的2D游戏(无需捕捉到网格),就像GameBoy上的任何塞尔达游戏一样。
我应该如何存储地图边界?有没有办法自动执行此操作?例如,我有一个背景和纹理的纹理与前景,其中黑色应该显示为透明,并应允许在其空间移动。
提前致谢。
答案 0 :(得分:1)
为了便于2D碰撞检测,您可能会实现边界框。
基本上,您将创建一个代表每个游戏对象的矩形。矩形的坐标和大小将与Texture2D相同(通常将其作为给定类的属性)。每次更新纹理的位置时,都会更新边界框的位置。
现在要检查碰撞,只需遍历游戏对象,看看是否有任何边界框相交。
一旦你明白了,你会发现它非常容易实现。 XNA还提供了一些数学助手来抽象数学(尽管它的简单加法和减法)。
尝试使用以下代码示例进行更深入的解释:http://www.dreamincode.net/forums/topic/180069-xna-2d-bounding-box-collision-detection/