1
마우스를 향해 회전하고 특정 속도로 마우스를 향해 움직이는 플레이어를 프로그래밍하려고합니다. 직교 카메라를 사용하고 있지만 카메라 위치가 플레이어 위치와 같아지면 플레이어 회전이 멈추고 모든 곳으로갑니다. 화면과 x 및 y가 아닌 마우스 좌표와 관련이있을 수 있다고 생각합니다. 나는 Gdx.inout.getY/X를 풀어 보려고 노력했다. 어떤 도움이라도 대단히 감사합니다. 내가 선수를 따라이 코드를 사용하고Libgdx Player rotation uping
:
cam.position.x = player.getX();
cam.position.y = player.getY();
cam.update();
And this code for rotation:
float mouseX = Gdx.input.getX();
float mouseY = (480 - Gdx.input.getY());
float originX = getWidth()/2 + position.x;
float originY = getHeight()/2 + position.y;
double angle = Math.atan2(mouseY - originY, mouseX - originX) * (180/Math.PI) + 90;
if (angle < 0)
angle += 360;
rotation = (float) angle;
direction.x = mouseX - position.x;
direction.y = mouseY - position.y;
double hyp = Math.sqrt(direction.x * direction.x + direction.y * direction.y);
direction.x /= hyp;
direction.y /= hyp;
position.x += direction.x * 2;
position.y += direction.y * 2;
죄송 메신저 새로운, 그래서 나는 새로운 뷰포트를 작성하고 나의 카메라를 설정할? 내 세계가 뭘 가리키고 있을까? 플레이어의 위치는? –
죄송합니다. 이미 ViewPort를 사용하고 계신 것으로 추정됩니다. StretchViewport에 대한 검색을 수행합니다 (다른 뷰포트를 사용할 수 있음, 현재 프로젝트에서이 뷰포트를 사용하고 있습니다). 그러면 대답을 찾을 수있을 것입니다 ... – munyul
감사합니다. 화면 뷰포트를 사용하고 unpojecting 그런 식으로. –