Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java libGDX Stage未响应,新的完全白度,视口不工作_Java_Opengl_Libgdx_Actor_Scene2d - Fatal编程技术网

Java libGDX Stage未响应,新的完全白度,视口不工作

Java libGDX Stage未响应,新的完全白度,视口不工作,java,opengl,libgdx,actor,scene2d,Java,Opengl,Libgdx,Actor,Scene2d,我一直在libGDX中做一个项目,从v0.9.9开始,我刚买了一台mac电脑,以便在ios上运行,在一系列弄清楚新的libGDX和robovm更新和权衡选项(通过各种尝试和错误)之后,我将不得不将所有内容更新到新的libGDX 1.2.0结构(gradle等)。这是由于添加了视口,并打乱了舞台的工作方式。最初在我的构造器中,我会首先创建一个正交摄影机和舞台,即: camera = new OrthographicCamera(854, 480); stage = new Stage(); 我

我一直在libGDX中做一个项目,从v0.9.9开始,我刚买了一台mac电脑,以便在ios上运行,在一系列弄清楚新的libGDX和robovm更新和权衡选项(通过各种尝试和错误)之后,我将不得不将所有内容更新到新的libGDX 1.2.0结构(gradle等)。这是由于添加了视口,并打乱了舞台的工作方式。最初在我的构造器中,我会首先创建一个正交摄影机和舞台,即:

camera = new OrthographicCamera(854, 480); 
stage = new Stage();
我不知道如何将相机融入到新代码中,因为我知道我需要在某个地方为舞台创建一个视口,但我不确定我的相机需要如何使用它。所有显示的只是一个白色屏幕。现在,在反复摆弄如何随机创建视口、摄影机和舞台设置之后,我实际上让它显示主菜单按钮,但当应该有3个移动背景(这会产生很酷的paralax效果…)和移动标题时,它会显示为空白白色。这可能是libGDX现在使用opengl2.0而不是1.0的方式吗?这些按钮演员也完全没有反应,他们应该在点击时设置动画,改变屏幕,输出到控制台,但不做任何事情。在show方法中,我始终将stage设置为输入处理器,并添加我的所有演员,即:

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

}
白度会是opengl无法处理图像而显示白色吗?这可能是因为缺少ram(无论是20mb的可用ram还是8gb的可用ram,以前都没有问题),可能是因为使用的图像太大(最大为3840x1080)?在我的渲染中:

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元素构建的——它实际上运行得非常好:)——所以让它运行意味着整个游戏。我一直在四处寻找,没有找到解决办法。因此,在回顾中,我如何正确地使用带有阶段的视口,以及如何使用它设置相机;为什么我的舞台/演员(按钮)没有反应;为什么除了我的按钮之外,所有的东西都显示为完全白色?

试着用以下方式创建舞台:

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);
您不必使用缩放视口。检查其他可能性

如前所述,在
调整大小(int,int)
中,尝试:

viewport.update(width, height, true);

您是否在
resize
中执行了
stage.getViewport().update(width,height,true)
操作?谢谢您,我将对此进行测试。我将使用stretchviewport,因为否则它会严重影响游戏性,因为我的所有演员都是基于坐标设置的,并且支持它的设备都不会因为拉伸而严重影响纵横比。知道是什么导致了不活动/白色吗?非常感谢你!你已经试过我的建议了吗?它解决了您提到的任何问题吗?我只是按照您的演示进行设置,活动返回到按钮,它们现在会改变屏幕并设置动画,但是其他所有内容仍然是完全白色的。有没有想过为什么??非常感谢。你说完全白是什么意思?只是你的背景没有显示出来吗?如果是这样的话,你如何创造你的背景呢?我想出来了!在我制作的actors的draw方法中,我不知道由于新的API,它必须被重写,并且必须用Batch替换SpriteBatch,即:必须变成:“@Override public void draw(Batch Batch,float parentAlpha){”