我正在尝试在 XNA 中制作(弄清楚如何......)一个 2d 平台游戏。
我知道如何创建平铺网格以及如何执行碰撞检测。我对玩家的 9 个边界图块执行碰撞检测,但我想知道是否有更好的方法来执行碰撞检测。
我读过 Braid 不使用瓷砖,而是使用拼凑的图像或其他东西,你如何对这些进行碰撞检测?这比使用瓷砖更好吗?
我正在尝试在 XNA 中制作(弄清楚如何......)一个 2d 平台游戏。
我知道如何创建平铺网格以及如何执行碰撞检测。我对玩家的 9 个边界图块执行碰撞检测,但我想知道是否有更好的方法来执行碰撞检测。
我读过 Braid 不使用瓷砖,而是使用拼凑的图像或其他东西,你如何对这些进行碰撞检测?这比使用瓷砖更好吗?
假设您不介意使用第三方工具为您完成大部分工作,您最好使用 Box2D for C# 之类的工具。
http://www.box2d.org/ http://code.google.com/p/box2dx/
该库将为您提供碰撞检测和物理功能。
如果你想要复古风格,那么使用瓷砖当然没问题!但是,如果您想要更“现代”的东西,那么您可以使用更传统的物理引擎。Farseer Physics是一个很棒的引擎,有几个人用它来制作平台游戏。它基于 Box2D 和类似的引擎,但提供了一个更简单的 API 和几个独特的功能(如纹理到几何),我自己可以证明它在使用它时很不错。
对于像 Braid 这样的游戏,您可能需要的不仅仅是碰撞检测。我假设您还需要一个物理引擎。我建议您看一下Farseer Physics 引擎,它是一种与 XNA 配合得很好的 2D 引擎。它支持多种不同的碰撞检测技术。
您是否检查过 XNA 创作者俱乐部的碰撞系列中的示例,尤其是像素碰撞示例?