C# XNA Farseer - Создание фигур из текстур

Я хочу создать вершины столкновения, чтобы прикрепить их к телам в XNA с помощью Farseer, согласно загруженным Texture2D.

Предостережение, прежде всего. в том, что я не использую Farseer для чего-либо кроме столкновения. Рендеринг и весь другой игровой код выполняется с использованием моего собственного движка. Farseer просто используется в качестве симулятора фоновой физики (и он сообщит мне только, когда произойдет столкновение, и я сам с этим разберусь).

Я должен указать здесь, что я на 100% новичок в Farseer. Никогда не использовал это раньше.

Итак, если я создаю свой список с помощью BayazitDecomposer.ConvexPartition(verts), я должен хранить эти данные вместе с объектами Texture2D; и затем создавать объекты List на лету, когда я создаю своих сталкивающихся актеров? Или я что-то не так делаю?

Кроме того, в примере по адресу http://farseerphysics.codeplex.com/documentation он масштабирует вершины с помощью Vertices.Scale()... Если я сохраню все тела Farseer в пиксельном пространстве, нужно ли мне это делать?

Спасибо.

1 ответ

Решение

Итак, если я создаю свой список с помощью BayazitDecomposer.ConvexPartition(verts), я должен хранить эти данные вместе с объектами Texture2D; и затем создавать объекты List на лету, когда я создаю своих сталкивающихся актеров? Или я что-то не так делаю?

Вы создаете экземпляр класса Body из списка вершин, используя BodyFactory. Я бы предложил сделать это для каждого вашего актера. Однако вы можете сэкономить некоторую мощность процессора, повторно используя тела. Поэтому, если актер умирает, добавьте тело в очередь, а затем привязайте его к созданному новому актеру.

Кроме того, в примере по адресу http://farseerphysics.codeplex.com/documentation он масштабирует вершины с помощью Vertices.Scale()... Если я сохраню все тела Farseer в пиксельном пространстве, нужно ли мне это делать?

Нету. Однако это означает, что пиксель является метром, насколько это касается Farseer. Я считаю, что формула для крутящего момента, если радиус * сила, так что все, что зависит от радиуса, не будет вести себя, как ожидалось. Я предлагаю сделать метис эквивалентным тому, что на самом деле является метром в игре. Это просто немного дополнительного деления.

Другие вопросы по тегам