2013-07-12 4 views
0

Im, делающий игру и идентификатор, как реализовать raycasting для лазера героя (и другие вещи в будущем), у меня есть спрайты на листе спрайта, которые я связываю в начале и доступ, когда я рисую, так как каждый элемент знает, как рисовать сам, но спрайт - это PNG, и, следовательно, некоторые элементы обладают прозрачностью, которая работает нормально в openGL. я знаю положение каждого элемента, размер и т. д., но если у некоторых спрайтов есть прозрачность, положение и размер arent достаточно, чтобы луч был отличным, потому что он попал бы только в «ограничительную рамку». Так что есть способ выбросить луч с использованием алгоритма Брешенема (я считаю, что это самый легкий путь, исправьте меня, если я ошибаюсь) и сделайте его идеальным пикселем в openGL, чтобы я мог получить точку столкновения луча с фактическим -прозрачная зона первого спрайта, которая появляется на пути?Ray Кастинг прозрачного PNG на Java с LWJGL

+0

Вы спрашиваете: «Как мне расист через прозрачные части спрайтов?» Также ваша игра 3D или 2D? – Chase

+0

Да, я и это 2D – Xkynar

+0

И если вы также можете посоветовать мне о самой легкой технике raycast для этой цели, id быть благодарным – Xkynar

ответ

1

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

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

+0

Я буду следовать вашему совету, спасибо :) – Xkynar

 Смежные вопросы

  • Нет связанных вопросов^_^