【问题标题】:Moving A Body With A Texture使用纹理移动身体
【发布时间】:2011-12-12 07:10:53
【问题描述】:

我正在使用 Farseer 物理引擎构建一个类似“Monster Dash”的游戏,目标是使用 C# 和 XNA 的 PC, 我试图用它的纹理移动一个身体,纹理是由部分组成的,所以它们都应该一起移动,基本上它看起来像这样:

    public void Update()
    {
        tilingFloorPosition.X += (floorMoveSpeed / MeterInPixels);
        _tilingFloorBody.Position = tilingFloorPosition;

        // Update the textures position
        for (int i = 0; i < texturePositions.Length; i++)
        {
            texturePositions[i].X += floorMoveSpeed;
        }
    }

但是每当我的球员落在地板上时,他就像什么都没有一样穿过它,我做错了什么?

【问题讨论】:

    标签: c# xna game-physics farseer


    【解决方案1】:

    如果玩家从地板上掉下来,那么我只能假设地板的身体实际上没有到位,或者两个身体没有碰撞。你能确认地板的位置确实正确吗?如果可以,请打开 Farseer 调试视图。如果是这样,那么碰撞一定不会发生。

    检查:

    • 玩家和地板都不是传感器
    • 它们不在同一个 CollisionCategory 中,并且至少其中一个包含在其他 CollidesWithCategory 中。
    • 您尚未将其中一个实体添加到其他 IgnoreBody 列表中。
    • 身体类型会发生碰撞。请参阅:Farseeer Body Types

    另外,值得注意的是,手动设置位置可能会跳过碰撞。尝试设置 LinearVelocity。

    【讨论】:

    • 谢谢!这真的很有帮助!
    猜你喜欢
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多