【问题标题】:Controlling Player Movement After Per Pixel Collision在每个像素碰撞后控制玩家运动
【发布时间】:2013-08-08 17:48:40
【问题描述】:

我已经实现了一个完整的每像素碰撞系统,它考虑了旋转,并且非常准确。它在碰撞时返回一个简单的布尔值。

但是我不确定如何从玩家运动的角度处理碰撞。

例如在上图中,如果玩家在左摇杆上举起,他应该被阻止,但如果他在左摇杆上举起+右斜线,他应该几乎自然地沿着红色方块的一侧向东北滑动。

我该怎么做才能让玩家的动量停止,但仍然让玩家控制在没有被碰撞阻挡的方向上移动。

我可以用简单的未变换的矩形来做这种事情,但是进入每像素纹理碰撞让我今天的大脑爆炸了,所以我希望你们能提供帮助。任何建议将不胜感激。

【问题讨论】:

  • 这有点超出我的理解,但是要搜索的关键字是碰撞响应。另外,请注意这里也有一个game development site
  • 非常感谢,我现在对每个像素的碰撞响应进行了一些搜索。

标签: c# xna collision-detection xna-4.0


【解决方案1】:

这是可能的。为此,如果您愿意在游戏中提供自然效果,则需要使用基于像素的碰撞来实现物理引擎。

为此,您要么编写自己的游戏引擎,要么使用已有的引擎。对于 2D 游戏,我强烈推荐Farseer Physics Engine。它已经存在了很长时间。现在情况稳定,肯定很棒。

它只是从头开始使用 XNA 开发的,而且在性能方面它也非常好。

看看这个。我希望我能给你答案。如果需要更多详细信息,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    相关资源
    最近更新 更多