XNA中基于平铺的冲突

我在XNA游戏中绘制了瓷砖并加载了我的角色。 然而,我的角色不会移动 – 地图会移动 – 这会给它带来运动的幻觉。 现在我想知道如何实际测试他们的碰撞。 我的意思是,碰撞代码在哪里,我如何使所有瓷砖代表“一件大事”?

在XNA Creator俱乐部上有一个基于像素的碰撞检测教程。 您需要确定要对其进行碰撞检测的对象。 我想你希望角色在平铺的背景中移动,所以你不想检查角色和背景之间的碰撞。 相反,你应该制作任何障碍物的精灵并对它们进行碰撞检测。

您可以查看Nick Gravelyn的Tile Engine Tutorials ,它将介绍创建tile引擎的整个过程。 这里有一个链接可以查看YouTube上的所有教程。

您可以查看Platformer入门套件 ,它展示了如何在地图中组织切片并检查碰撞。

矩形有一个交叉方法。 如果您的玩家居中并且您知道坐标,则循环浏览其他texture2ds并在滚动地图之前检查交叉点。