столкновение спрайтов в программировании игр - PullRequest
2 голосов
/ 08 января 2010

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

Спасибо:)

Ответы [ 2 ]

1 голос
/ 12 января 2010

Здесь нужно рассмотреть несколько вещей.

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

С другой стороны, вполне вероятно, что обе матрицы мирового пространства объекта либо известны, либо все равно рассчитываются для каждого кадра, чтобы их можно было визуализировать. Главное исключение - если эти объекты отбракованы, и в этом случае я бы поставил под сомнение ваше желание смоделировать сложную физику этих объектов. Если доступны матрицы мирового пространства, нет никаких причин делать дополнительные матрицы умножения, чтобы переключать одну в локальное пространство другой. Кроме того, если одновременно происходит несколько столкновений, вам придется дважды преобразовываться в локальное пространство, а не просто выполнять вычисления в мировом пространстве.

Как говорится, Это, вероятно, не имеет значения . Столкновение спрайтов не ракетостроение. Типичный пользователь НИКОГДА не сможет определить разницу в вычислениях с плавающей запятой, если ваши значения разумны, а на современных процессорах несколько умножений на каждый кадр не будут иметь значения. Я предполагаю, что вы не пытаетесь создать спрайт-MMORPG с тряпичными куклами, так что выбирайте тот, который вам больше нравится.

0 голосов
/ 08 января 2010

Как повлияет используемое вами координатное пространство на ваш фактический результат? Я думаю, что вы должны просто выбрать все, что быстрее.

...