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)は、本来あるべきものの負です。
これはなぜ起こり、どうすれば防ぐことができますか?