Я делаю игру, и я хотел бы реализовать raycasting для лазера героя (и другие вещи в будущем), у меня есть мои спрайты в листе спрайтов, который я связываю в начале и получаю доступ, когда я рисую, поскольку каждый элемент знает, как рисовать себя , но спрайт-лист представляет собой PNG, и поэтому некоторые элементы обладают прозрачностью, что нормально работает в openGL. я знаю положение, размер и т. д. каждого элемента, но если некоторые спрайты имеют прозрачность, положение и размер недостаточны для идеального луча, поскольку он попадет только в «ограничивающую рамку». Итак, есть ли способ бросить луч с использованием алгоритма Брезенхема (я считаю, что это самый легкий способ, поправьте меня, если я ошибаюсь) и сделать его пиксельным идеальным в openGL, чтобы я мог получить точку столкновения луча с фактическим не -прозрачная зона первого спрайта мешается?
Ray Casting прозрачный PNG в Java с LWJGL
comment
Вы спрашиваете, как сделать рейкаст через прозрачные части спрайтов? Также ваша игра 3D или 2D?
- person Chase   schedule 12.07.2013
comment
Да я и это 2D
- person Xkynar   schedule 12.07.2013
comment
И если вы также можете посоветовать мне самую легкую технику raycast для этой цели, я был бы благодарен
- person Xkynar   schedule 12.07.2013
Ответы (1)
Нет простого способа сделать это. Вам нужно будет создать пользовательскую проверку коллизий для вашего raycast, чтобы увидеть, пройдет ли он или столкнется с частью спрайта.
Однако может быть лучше использовать ограничивающую рамку меньшего размера или круг для ее представления, или и то, и другое. Их гораздо проще и быстрее вычислить, чем проверять каждый пиксель в текстуре.
person
Chase
schedule
12.07.2013