【问题标题】:Xna collision detection 2dXna 碰撞检测 2d
【发布时间】:2012-04-10 08:19:42
【问题描述】:

您好,我正在尝试编写一个简单的游戏,其中有一个玩家和一些简单的世界,如树木或一些建筑物,玩家可以拿着枪走路并射击像树木这样的世界对象并最终摧毁它,游戏是自上而下的,所以我不需要任何重力。玩家可以打很多子弹,世界上的一些怪物可以射击。所以屏幕上可能会同时出现很多子弹,所以我需要一些好的工具来进行碰撞检测。同样重要的是玩家现在不能在其他物体上行走,就像有一个怪物和玩家一样,它们不能存在于同一个地方(一个人不应该去另一个)。你能给我推荐一些碰撞检测引擎吗,也许我应该使用 Farser 还是我应该自己写更好?

类似于http://www.youtube.com/watch?v=u8rWomjyTWI

我还有一个问题,几天以来我仍在阅读有关 xna 的信息,我现在知道,如果它涉及到碰撞检测,我们有像素或正方形和圆形,现在:是否有任何收费或引擎可以减少质地 将其映射成多边形并检查碰撞?

【问题讨论】:

  • 有几个碰撞检测的例子,你只需要谷歌它。另外,2D 碰撞并不难,所以你应该自己尝试实现它来学习。
  • 我知道有很多,看我的第二个问题
  • 您可能想尝试按像素碰撞,如 here 所示。如果您只想检查像素是在正方形还是圆形内,这可能有点矫枉过正。
  • 不知道我想要一个多边形,在一个视图上可能像几千个子弹和像 100 个字符
  • 嗯...您的子弹可以表示为像素,而字符可以表示为矩形?如果您进行粗略碰撞检测而不是像素完美碰撞,它将节省大量 CPU,尤其是在这样的自上而下的情况下。

标签: xna collision-detection


【解决方案1】:

Farseer 用于物理学。如果您需要复杂的碰撞反应,请使用它。如果你只需要 if colission then kill player,你不需要这样的引擎或库。

您是否阅读了 App Hub 中的碰撞示例?
链接:http://create.msdn.com/en-US/education/catalog/tutorial/collision_2d_perpixel_transformed

这对于您的目的来说可能已经足够了。

【讨论】:

  • 很好的例子说明为什么这种答案是不正确的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2015-10-08
  • 2016-08-31
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
相关资源
最近更新 更多