2014-03-12 3 views
0

Java 및 Libgdx scene2d로 게임을 만들고 있습니다. 크기 조정에서 그런Libgdx scene2d 경계가 너무 작 으면 터치 패드가 '거꾸로'됩니다.

atlas = new TextureAtlas("gfx/button.pack"); 
skin = new Skin(atlas); 

TouchpadStyle touchpadStyle = new TouchpadStyle(); 
touchpadStyle.background = skin.getDrawable("button.up"); 
touchpadStyle.knob = skin.getDrawable("button.down"); 
touchpadStyle.knob.setLeftWidth(20); 
touchpadStyle.knob.setRightWidth(20); 
touchpadStyle.knob.setBottomHeight(20); 
touchpadStyle.knob.setTopHeight(20); 
controller = new Touchpad(1f, touchpadStyle); 
addActor(controller); 

() 나는 다음을 수행하십시오 :이 생성자 내 코드입니다

public void resize(float width, float height) { 
    setViewport(width, height, true); 

    //TODO setting the bounds too small breaks the touchpad? 
    controller.setBounds(width*1f/16, height*1f/9, width/7f, width/7f); 
} 

문제는 그 나는 (내가 데스크톱 버전을 실행 해요) 화면 크기를 조정할 때 충분히 작은 폭으로, 터치 패드는 어떻게 든 거꾸로된다. 터치 패드를 만질 때 배경이 위에 있고 움직이는 것처럼 보입니다. 또한 그것이주는 방향 (percentX, percentY)은 그것이 있어야하는 것의 부정입니다.

왜 이런 일이 발생하며 어떻게 방지 할 수 있습니까?

답변

1

항상 화면의 1/7 인 컨트롤러를 원한다면 왜 픽셀 완벽한 스테이지를 사용하고 있습니까? 당신의 크기 조절 방법에서하지 왜 :

virtualStage.setViewport(MyGame.VIRTUAL_WIDTH, MyGame.VIRTUAL_HEIGHT, true); 
    virtualStage.getCamera().translate(-virtualStage.getGutterWidth(),-virtualStage.getGutterHeight(), 0); 
    Camera c = virtualStage.getCamera(); 
    c.update(); 

당신은 당신이 (당신이 오른쪽에 표시에 따라 달라집니다) 원하는 경우 번역 생략 할 수있다. 크기 조정시 컨트롤러의 경계를 변경하면 문제가있는 것일까?

+0

나는 지금 이렇게한다. 그것은 화면의 길이를 길게하고 높이를 줄이면 hud 요소가 경계에서 훨씬 어리석게됩니다. 하지만 모바일 화면 해상도와 데스크톱에서 누가 그런 종류의 해상도로 창 크기를 조정할지라도 괜찮을 것입니다. 이제는 터치 패드가 작동하지만 너무 작아서 크기를 조정할 때 파손 된 부분이 무엇인지 궁금합니다. – ploosu2

관련 문제