현재 libgdx 게임 프로그래밍을 배우고 있습니다. 이제는 touchDown을 사용하는 방법을 배웠지 만, touchDragged를 사용하는 방법을 알지 못했습니다. 컴퓨터가 손가락을 드래그하는 방향을 알 수 있습니까 (사용자가 왼쪽 또는 오른쪽으로 드래그했는지 여부).)touchDragged는 libgdx에서 어떻게 작동합니까?
6
A
답변
11
컴퓨터에서 알지 못합니다. 또는 최소한 인터페이스는이 정보를 알려주지 않습니다. 그것은 다음과 같습니다
public boolean touchDragged(int screenX, int screenY, int pointer);
그것은 터치 다운과 같은 동일 거의는 다음과 touchDown
이벤트가 일어난 후 touchUp
이벤트가 발생할 때까지
public boolean touchDown(int screenX, int screenY, int pointer, int button);
만 touchDragged
이벤트 (같은 포인터)가 발생합니다 . 포인터가 움직이는 방향을 알고 싶다면 마지막 터치 점과 현재 점 사이의 델타 (차이)를 계산하여 직접 계산해야합니다. 그러면 다음과 같이 보일 수 있습니다.
private Vector2 lastTouch = new Vector2();
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
lastTouch.set(screenX, screenY);
}
public boolean touchDragged(int screenX, int screenY, int pointer) {
Vector2 newTouch = new Vector2(screenX, screenY);
// delta will now hold the difference between the last and the current touch positions
// delta.x > 0 means the touch moved to the right, delta.x < 0 means a move to the left
Vector2 delta = newTouch.cpy().sub(lastTouch);
lastTouch = newTouch;
}
0
터치 드래그 방법은 터치 위치가 변경되는 모든 프레임이라고합니다. 터치 다운 방법은 화면을 터치 할 때마다 호출되며 터치 스크린에서 손을 뗄 때 위로 터치합니다.
LibGDX - Get Swipe Up or swipe right etc.?
이것은 당신에게 약간의 도움을 줄 수 있습니다.
완벽한 답변 @noone. – Crowni
반환 값을 지정하지 않았습니다. 그것이 가장 혼란 스럽습니다. 이 방법들은 무엇을 반환합니까? – WeirdElfB0y