Android 如何添加不实现屏幕界面的带有Stage类的按钮?

Android 如何添加不实现屏幕界面的带有Stage类的按钮?,android,libgdx,rendering,Android,Libgdx,Rendering,我有自己的Libgdx类,它不实现屏幕 接口。我控制我的相机移动。这是一个正交摄影机,其视口宽度为WorldWidth,视口高度为WorldHeight。我试图通过Stage类添加一个按钮。我可以添加它,我看到它被绘制了,但是由于我没有实现屏幕接口,我在render()方法上调用stage.draw(),而不是在屏幕接口似乎需要的render(float delta)方法上调用。为了进行比较,我绘制了一个大小为(0.25fcamera.viewportWidth,0.25fcamera.view

我有自己的Libgdx类,它不实现屏幕 接口。我控制我的相机移动。这是一个正交摄影机,其视口宽度为WorldWidth,视口高度为WorldHeight。我试图通过Stage类添加一个按钮。我可以添加它,我看到它被绘制了,但是由于我没有实现屏幕接口,我在render()方法上调用stage.draw(),而不是在屏幕接口似乎需要的render(float delta)方法上调用。为了进行比较,我绘制了一个大小为(0.25fcamera.viewportWidth,0.25fcamera.viewportHeight)的精灵。但是,当我调用stage.draw()时,这个精灵没有绘制。按钮会绘制,但看起来很小,即使我将其大小设置为(0.25fcamera.viewportWidth,0.25fcamera.viewportHeight)。这是上面的代码 如何添加我的按钮类:

stage1= new Stage();
btn = new Button(new SpriteDrawable(new Sprite(new Texture("texone.png"))),
new SpriteDrawable(new Sprite(new Texture("textwo.png"))));
btn.addListener(new ClickListener(){
public void clicked(InputEvent event, float x, float y){ }
});
btn.setBounds(0f,0f,0.25f*camera.viewportWidth,0.25f*camera.viewportHeight);
btn.setPosition(0f,100f);
stage1.add(btn);
Gdx.input.setInputProcessor(stage1);
//a few lines down to my render() method
@Override
public void render(){
//.... more regular code that goes in method
batch.begin();
//more lines of code that draw my sprites
stage1.draw();
batch.end();
}
我想知道的是,为什么按钮这么小,为什么我的另一个精灵画不出来?也许有一种方法可以将正交摄影机添加到stage1对象。而且,如果我将正交摄影机添加到stage1对象,我应该如何在resize方法上更新stage1视口?请告知


谢谢

我看不出您为批处理设置了投影矩阵。你调用这个函数吗

batch.setProjectionMatrix(camera.combined);

您应该在渲染函数中执行此操作

您可以在batch.end()之后移动stage1.draw(),它有自己的batch begin和end。当你创建你的舞台时,你可以指定一个视口来为它创建一个摄像头。伙计,你太棒了!谢谢你的正确答案@巴罗达普利