java - libGDX Stage 没有响应,新的完全白度,视口(viewport)不起作用

标签 java opengl libgdx actor scene2d

我一直在 libGDX 中制作一个项目,并从 v0.9.9 开始,我刚买了一台 mac 以便在 ios 上使用它,经过一系列弄清楚新的 libGDX 和 robovm 更新以及权衡选项(通过各种尝试和错误)我将不得不将所有内容更新为新的 libgdx 1.2.0 结构(gradle 等)。这伴随着视口(viewport)的添加而出现,并扰乱了舞台的工作方式。最初在我的构造函数中,我首先创建一个正交相机和舞台,即:

camera = new OrthographicCamera(854, 480); 
stage = new Stage();

我不知道如何将相机纳入新代码中,因为我知道在某个地方我需要为舞台创建一个视口(viewport),但我不确定我的相机需要如何使用它。所显示的只是一个白屏。现在,在反复摆弄我如何随机制作视口(viewport)、相机和舞台设置后,我实际上让它显示主菜单按钮,但当应该有 3 个移动背景时却显示在空白白色上(它产生了很酷的视差效果...... )并随之移动标题。这是否就是 libGDX 现在使用 openGL 2.0 而不是 1.0 的方式?这些按钮 actor 也完全没有响应,它们应该在单击时进行动画处理,并更改屏幕并输出到控制台,但不执行任何操作。我一直在 show 方法中设置舞台作为输入处理器,并添加我所有的 Actor ,即:

@Override
public void show() {
    Gdx.input.setInputProcessor(stage);
    stage.addActor(variousActors);

}

白度是否可能是opengl无法处理图像并显示白色?这可能是因为缺乏内存(以前无论是在 20MB 可用内存还是 8GB 可用内存上都不是问题),是否是使用的图像太大(最大为 3840 x 1080)?在我的渲染中是:

public void render(float delta) {
    Gdx.gl.glClearColor(1F, 1F, 1F, 1F);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.setProjectionMatrix(camera.combined);
    camera.update();

    stage.act(delta);
    batch.begin();

    batch.end();    
    stage.draw();
    System.out.println("menuscreen rendering");

}

--所有参与者/元素都在构造函数中初始化

我的整个游戏实际上是由场景 2d 元素构建的 - 它实际上运行得非常好:) - 所以让它工作意味着整个游戏。我已经四处寻找并没有找到解决方案。因此,回顾一下,我如何正确使用带有舞台的视口(viewport)以及如何用它设置我的相机;为什么我的舞台/ Actor (按钮)没有反应;为什么除了我的按钮之外的所有东西都显示为完全白色?

最佳答案

尝试以这种方式创建舞台:

camera = new OrthographicCamera(854, 480);
viewport = new ScalingViewport(Scaling.stretch, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true);
stage = new Stage(viewport, batch);

您不必使用 ScalingViewport。检查https://github.com/libgdx/libgdx/wiki/Viewports寻找其他可能性。

resize(int, int) 中,如前所述,尝试:

viewport.update(width, height, true);

关于java - libGDX Stage 没有响应,新的完全白度,视口(viewport)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24473181/

相关文章:

c++ - 主程序中的多个着色器程序

math - 投影球体的半径

java - libGDX : desgin game assets according different size screens

java - 如何选择具有 CLOB 数据类型的列

java - 如何防止 Hibernate 使用 0 作为 ID?

opengl - 获取缓冲区的大小

java - 使用 scene2d 在 libgdx 中居中选择框文本

java - 使用世界单位而不是 (0f,1f) 值提供着色器程序

Java 将字符串变量作为回调函数传递

java - 在 robocode 中前往 map 中心