0

Java と 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);

次に、 resize() で次のことを行います。

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)は、本来あるべきものの負です。

これはなぜ起こり、どうすれば防ぐことができますか?

4

1 に答える 1