2014-06-12 7 views
0

특히 터치가 화면의 왼쪽이나 오른쪽에 있는지 확인하기 위해 터치 다운 방법을 얻으려고합니다. 화면 메서드는 136 픽셀의 화면 너비를 정의하지만 내 코드는 왼쪽 클릭으로 화면 너비의 1/4 정도를 해석하는 것 같습니다.libgdx - 입력 프로세서가 좌표를 얻는 방법은 무엇입니까?

public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
    touchX=screenX; 
    touchY=screenY; 
    if(screenX<= 136/2) { 
     myToken.onLeftClick(); 
    }else{ 
     myToken.onRightClick(); 
    } 
    return true; 
} 

답변

1

세계 좌표를 가져 오려면 camera.unproject를 사용해야합니다.

public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
    Vector3 vec=new Vector3(screenX,screenY,0); 
    camera.unproject(vec); 

    touchX=vec.x; 
    touchY=vec.y; 
    if(screenX<= 136/2) { 
     myToken.onLeftClick(); 
    }else{ 
     myToken.onRightClick(); 
    } 
    return true; 
} 
+0

비 프로젝트에 대한 오류 메시지가 나타납니다. 정적이 아닌 메소드 unproject를 정적 컨텍스트에서 참조 할 수 없습니다. 지금 생각 중입니다 : 게임 초기화시 좌표를 가져와 입력 핸들러에서 해당 좌표를 가져야합니까? – qiubs

+0

카메라가 고정적입니까? –

+0

저는 그렇게 생각하지 않지만 게임을 렌더링하는 데 사용하는 완전히 다른 클래스의 개인용 OrthographicCamera입니다. 그래서 그 클래스에서 나는 public vars 세트에서 스크린 좌표를 얻어야하고 그것을 읽을 inputhandler를 얻는가? – qiubs

관련 문제