2D костная система - PullRequest
       19

2D костная система

4 голосов
/ 21 марта 2009

Я пытаюсь написать 2D систему Bone в XNA.

Моей первоначальной мыслью было использование матриц для отслеживания поворотов и позиционирования через костное дерево, чтобы предметы могли легко отображаться.

Круто, подумала я, а затем смятение ударило меня по лицу, когда я увидела, что матрицы могут быть применены только к одному пакету спрайтов. Начинайте вызов, а не вызов на вывод!

Я выполнил несколько тестов производительности, чтобы проверить, не исчезло ли мое беспокойство, и это было вызвано вызовом spritebatch.Begin и End много раз снижает частоту кадров на огромную (и неприемлемую) величину.

Итак, перед тем как нарисовать изображение с одним костяком, мне нужно будет вручную построить его окончательное положение и поворот (и, возможно, масштаб) в будущем. В этом случае вы все равно будете использовать матрицы и каким-то образом извлекать информацию в конце непосредственно перед извлечением кости? Если да, есть идеи, как получить окончательную информацию, которая мне нужна? Или было бы проще попытаться построить все это из необработанных позиций и поворотов его родительских узлов?

Заранее спасибо всем, у кого есть идеи.

Ответы [ 2 ]

4 голосов
/ 21 марта 2009

Честно говоря, я бы бросил объект рендеринга Sprite и переключился бы на квадраторы пространства экрана. Нет искусственных ограничений на экранирование четырехугольников пространства, и вы можете использовать стандартную реализацию систем костей: проходите по дереву, применяя преобразования по мере продвижения, а затем извлекайте их, когда вы возвращаетесь вверх по дереву.

0 голосов
/ 27 марта 2009

Разве матрицы не излишни, когда вы работаете в 2D? Я имею в виду 16 скалярных умножений для каждого матрично-векторного произведения, когда вы можете сделать с 4 умножениями для вращения и 2 суммами для перевода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...