저는 Libgdx에서 간단한 게임을 만들고 있습니다. 문제는 코드가 데스크톱에서는 잘 작동하지만 Android에서는 그렇지 않다는 것입니다 (Galaxy S6). 게임에서 손가락으로 장치 중앙 (너비/2, 높이/2)으로 회전합니다. 당신이 표시됩니다 원을 회전사용자 입력이 Android에서 바탕 화면처럼 작동하지 않습니다.
touchpoint.set(Gdx.input.getX(),Gdx.input.getY());
speicher1 = (float)((Math.atan2 (touchpoint.x - width/2, -(touchpoint.y - height/2))*180.0d/Math.PI))+180; //Touchpunkt Gradzahl zur Mitte
이 계산 천사 : 당신은 터치 포인트 인식이 터치와 센터 사이의 각도를 계산하고 speicher1에 저장됩니다 (항상 0과 360) 화면에. 모두이 두 가지 (데스크톱, 안드로이드)에서 잘 작동합니다. 이제 예를 들어 180 °로 손가락을 대면 원이 즉시이 지점으로 회전합니다. 하지만 그건 내가 원하는 것만은 아니다. 손가락을 움직일 때만 회전해야합니다. 따라서 원을 만지기 시작하면 드래그를 시작할 때만 원이 회전하지 않아야합니다. 다행히 나는 이것을 당신에게 분명히 할 수 있습니다. D. 는 I 이에 대한 해결책을 만들었다 :
touchpoint.set(Gdx.input.getX(),Gdx.input.getY());
speicher1 = (float)((Math.atan2 (touchpoint.x - width/2, -(touchpoint.y - height/2))*180.0d/Math.PI))+180; //Toucpunkt Gradzahl zur Mitte
if (Gdx.input.justTouched()) {
speicher2 = 360-(speicher1 - kcc.getCcdegreee());
}
speicher1 = speicher1 + speicher2;
while (speicher1 >= 360) {
speicher1 -= 360;
}
kcc.setCcdegreee(speicher1);
[KCC는 원의 모든 정보 (텍스처, 크기, 위치, 각도 (Ccdegree))에 저장되고 제 클래스]
I는이 문제를 해결 justTouched Method를 사용하고이 점을 'Start Point'로 만들었습니다. 이제 문제가 생겼습니다. 데스크톱에서는 제대로 작동하지만 Android에서는 제대로 작동하지 않습니다.
항목 코드 :
public void render(SpriteBatch sb, SpriteBatch textsb) {
//Wenn getouched(gedreht wurde)
if (Gdx.input.isTouched()) {
handleInput();
}
sb.begin();
//COLORCIRCLE
sb.draw(kcc.getCc(),kcc.getCcposition().x,kcc.getCcposition().y,kcc.getCcwidth()/2,kcc.getCcwidth()/2,kcc.getCcwidth(),kcc.getCcheight(),1,1,-kcc.getCcdegreee(),true);
sb.end();
}
[표시 만지면 I 알아낼 방법 렌더링 계산 천사 화면의 원을 그리]
핸들 입력기 :
protected void handleInput() {
touchpoint.set(Gdx.input.getX(),Gdx.input.getY());
speicher1 = (float)((Math.atan2 (touchpoint.x - width/2, -(touchpoint.y - height/2))*180.0d/Math.PI))+180; //Toucpunkt Gradzahl zur Mitte
if (Gdx.input.justTouched()) {
speicher2 = 360-(speicher1 - kcc.getCcdegreee());
}
speicher1 = speicher1 + speicher2;
while (speicher1 >= 360) {
speicher1 -= 360;
}
kcc.setCcdegreee(speicher1);
}
내가 말한대로 모든 것이 데스크톱에서는 완벽하게 작동하지만 안드로이드에서는 완벽하게 작동하지 않습니다. 나는 누군가가 이것에 대한 해결책을 찾거나 내 잘못을 찾길 바랍니다.