2014-05-19 5 views
6

현재 libgdx 게임 프로그래밍을 배우고 있습니다. 이제는 touchDown을 사용하는 방법을 배웠지 만, touchDragged를 사용하는 방법을 알지 못했습니다. 컴퓨터가 손가락을 드래그하는 방향을 알 수 있습니까 (사용자가 왼쪽 또는 오른쪽으로 드래그했는지 여부).)touchDragged는 libgdx에서 어떻게 작동합니까?

답변

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

완벽한 답변 @noone. – Crowni

+0

반환 값을 지정하지 않았습니다. 그것이 가장 혼란 스럽습니다. 이 방법들은 무엇을 반환합니까? – WeirdElfB0y

0

터치 드래그 방법은 터치 위치가 변경되는 모든 프레임이라고합니다. 터치 다운 방법은 화면을 터치 할 때마다 호출되며 터치 스크린에서 손을 뗄 때 위로 터치합니다.

LibGDX - Get Swipe Up or swipe right etc.?

이것은 당신에게 약간의 도움을 줄 수 있습니다.