Перемещение тела с текстурой - PullRequest
0 голосов
/ 30 сентября 2011

Я использую Farseer Physics Engine для создания игры типа «Monster Dash», предназначенной для ПК с использованием C # и XNA, Я пытаюсь переместить тело с его текстурой, текстура построена из частей, поэтому все они должны двигаться вместе, в основном это выглядит так:

    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;
        }
    }

Но когда мой игрок приземляется на пол, он просто проходит через него, как будто там ничего нет, что я делаю не так?

1 Ответ

0 голосов
/ 12 декабря 2011

Если игрок падает через пол, то я могу только предположить, что либо тело пола на самом деле не находится в положении, либо эти два тела не сталкиваются. Можете ли вы подтвердить, что пол действительно правильно расположен? Если вы можете, включите Farseer Debug View. Если это так, то столкновение не должно происходить.

Проверка:

  • что и игрок, и пол не являются сенсорами .
  • что они не входят в одну и ту же CollisionCategory и по крайней мере один из них включен в другие CollidesWithCategory .
  • То, что вы не добавили одно из тел к другим IgnoreBody список.
  • Что типов телосложения будут сталкиваться. Смотри: Типы телосложения Farseeer .

Кроме того, возможно, стоит отметить, что, возможно, ручная установка положения может пропустить столкновение. Попробуйте вместо этого установить LinearVelocity.

...