垂直组与堆栈演员在libgdx中表现奇怪

时间:2015-12-24 21:17:58

标签: libgdx

另一个libgdx组问题。我试图用Slider覆盖Image actor。滑块的高度为55,下面是bgImage,也应该有55的高度。我正在使用此代码。目标是实现完全叠加,因为顶部的滑块是半透明的。问题是bgImage的高度与滑块(55)不同,即使我用setHeight()方法设置它。我在渲染方法中跟踪了bgImage的高度。结果很有趣。只有第一次调用渲染时,bgImage的高度为55,在所有后续渲染调用中,bgImage的高度为140,因此弄乱了我的用户界面。高度变化的原因是什么?解决方法是什么?感谢帮助。

        Texture bgTexture=new Texture("underImage.png");
        bgImage= new Image(new TextureRegionDrawable(new TextureRegion(bgTexture)));
        bgImage.setColor(Color.BLUE);
        bgImage.setWidth(hueSlider.getStyle().background.getMinWidth());
        bgImage.setPosition(0, 0);
        bgImage.setHeight(55);
        bgImage.setBounds(0,0,hueSlider.getWidth(),55);
        Texture overlayTexture=new Texture("gradientOverlay3.png");
        Slider.SliderStyle ss2=new Slider.SliderStyle();
        ss2.background= new TextureRegionDrawable(new TextureRegion(overlayTexture));
        ss2.knob= new TextureRegionDrawable(new TextureRegion(th));
        brightnessSlider=new Slider(1,100,1,false,ss2);

        stack=new Stack();
        stack.add(bgImage);
        stack.add(brightnessSlider);
        verticalGroup.addActor(hueSlider);
        verticalGroup.addActor(stack);

        table.add(verticalGroup).width(365).fillX();
        stage.addActor(table);

编辑:brighntessSlider位于顶部,它的高度与我用于背景的图像的高度相同,即55.

这是render方法的实现。见第二个sout声明。那时的高度已经是140. Veeeery很奇怪。

public void render () {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        System.out.println("height" + bgImage.getHeight());

        camera.update();
        batch.begin();

        batch.end();

        stage.act(Gdx.graphics.getDeltaTime());
        stage.draw();
        System.out.println("height" + bgImage.getHeight());
    }

0 个答案:

没有答案