gpt4 book ai didi

java - 如何在 html 上的 Libgdx 中处理调整大小(GwtApplication)

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:21 26 4
gpt4 key购买 nike

我对 html 上的 libgdx 有疑问。这两天我解决不了这个问题。当我调整浏览器大小时,我应用中的 Gdx.graphics 没有改变。我查看了 GwtApplication 的源代码,这对我来说非常困难,我理解 Gdx.graphics 必须自动更改,但事实并非如此。抱歉我的英语不好。

最佳答案

首先看看如何根据用户输入调整大小。在您的共享项目代码中,您可以执行以下操作:

    if(Gdx.app.getType() == ApplicationType.WebGL) {
InputAdapter webGlfullscreen = new InputAdapter() {
@Override
public boolean keyUp (int keycode) {
if (keycode == Keys.ENTER) {
if (!Gdx.graphics.isFullscreen()) Gdx.graphics.setDisplayMode(Gdx.graphics.getDisplayModes()[0]);
} else if(keycode == Keys.UP || keycode == Keys.W) {
Gdx.graphics.setDisplayMode(Gdx.graphics.getWidth()+100, Gdx.graphics.getHeight()+100, false);
} else if(keycode == Keys.DOWN || keycode == Keys.S) {
Gdx.graphics.setDisplayMode(Gdx.graphics.getWidth()-100, Gdx.graphics.getHeight()-100, false);
}
return true;
}
};
Gdx.input.setInputProcessor(webGlfullscreen);
}

只有在您有方形视口(viewport)时,每个维度加 100 才是正确的。根据您想要的比例进行调整。

LibGDX 不处理 GWT 窗口大小调整,您必须向 -html 项目添加一些代码,因为 LibGDX 不监听浏览器大小调整,因此您必须自己添加一些 GWT 代码。在你的 GwtApplication 子类中做:

public class GwtLauncher extends GwtApplication {

@Override
public void onModuleLoad () {
super.onModuleLoad();
com.google.gwt.user.client.Window.addResizeHandler(new ResizeHandler() {
public void onResize(ResizeEvent ev) {
Gdx.graphics.setDisplayMode(ev.getWidth(),ev.getHeight(), false);
}
});
}

@Override
public GwtApplicationConfiguration getConfig () {
int height = com.google.gwt.user.client.Window.getClientHeight();
int width = com.google.gwt.user.client.Window.getClientWidth();
GwtApplicationConfiguration cfg = new GwtApplicationConfiguration(width, height);
return cfg;
}

@Override
public ApplicationListener getApplicationListener () {
return new GdxDemoGame();
}
}

当然,现在您必须像在桌面端一样处理宽高比问题。

附注我必须查看 GWT 后端以确定是否已经有任何调整大小的行为。这就是我发现调用 setDisplayMode 会调整分辨率的方式,而且我还看到还没有调整大小的监听器。你可以自己看看https://github.com/libgdx/libgdx/blob/master/backends/gdx-backends-gwt/src/com/badlogic/gdx/backends/gwt/GwtApplication.java

关于java - 如何在 html 上的 Libgdx 中处理调整大小(GwtApplication),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com