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