2016-08-09 3 views
0

FitViewportКак правильно фиксировать точку касания с окном просмотра камеры?

при использовании этого видового экрана и получить точку касания, как вы можете видеть на рисунке 1 GIF, что пуля является направление не с точностью до точки касания.

fit viewport

StretchViewport

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

stretch viewport

ответ

0

Если Camera имеет Viewport, используйте класс класса просмотра unproject() вместо использования класса камеры.

1

Вам нужно перевести экран координаты мирового пространства. Этот код будет работать для вас, если вы применитесь к позиции касания.

Vector3 unproject(Vector3 screenCoords, 
        float viewportX, 
        float viewportY, 
        float viewportWidth, 
        float viewportHeight); 

Вы можете использовать его как то

Vector3 touch=camera.unproject(new Vector3(Gdx.input.getX(), Gdx.input.getY() , 0) ,viewportX, viewportY, viewportWidth, viewportHeight); 
    touch.x // translated touch x 
    touch.y // translated touch y 

Или вы можете также использовать viewport.unproject() для видовых его точно же с первым.