我一直在做一个项目在libGDX和v0.9.9开始,我刚刚得到了一个mac为了得到它在ios上,经过一系列的计算出新的libGDX和robovm更新和权衡选项(通过各种试验和错误),我将不得不更新一切到新的libGDX 1.2.0结构(gradle等)。这伴随着视口的添加,并破坏了阶段的工作方式。最初在我的构造函数中,我将首先创建一个正交摄像机和舞台,即:
camera = new OrthographicCamera(854, 480);
stage = new Stage();
我不知道如何将相机纳入新代码,因为我知道我需要在某个地方为舞台创建一个视口,但我不确定我的相机需要如何使用它。所有显示出来的只是一个白色的屏幕。现在,在反复摆弄我如何随机制作视口,相机和舞台设置后,我实际上得到了它来显示主菜单按钮,但在空白时,应该有3个移动背景(这使一个很酷的视差效果……)和移动标题。这可能是libGDX现在使用openGL 2.0而不是1.0的原因吗?这些按钮角色也完全没有响应,它们应该在点击时显示动画,改变屏幕,并输出到控制台,但不做任何事情。在show方法中,我总是将舞台作为输入处理器设置,并添加所有的演员,例如:
@Override
public void show() {
Gdx.input.setInputProcessor(stage);
stage.addActor(variousActors);
}
白色可能是开放的,不能处理图像,而是显示白色?这可能是因为缺乏ram(以前无论是在20mb可用ram还是8gb可用ram上都不是问题),可能是使用的图像太大(最大的是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与阶段,我如何设置我的相机与它;为什么我的舞台/演员(按钮)没有反应;为什么除了我的纽扣,所有的东西都是白色的?
尝试这样创建舞台:
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);