在libGdx上调整大小时发生错误的单击事件
我想在libGDX中使用scene2D来检测单击对象 我有一个简单的游戏示例:在libGdx上调整大小时发生错误的单击事件,libgdx,Libgdx,我想在libGDX中使用scene2D来检测单击对象 我有一个简单的游戏示例: Stage stage; @Override public void create() { this.stage = new Stage(1280, 720, true); MyActor actor = new MyActor(); Gdx.input.setInputProcessor(stage); actor.setTexture(new TextureReg
Stage stage;
@Override
public void create()
{
this.stage = new Stage(1280, 720, true);
MyActor actor = new MyActor();
Gdx.input.setInputProcessor(stage);
actor.setTexture(new TextureRegion(new Texture(Gdx.files.internal("plateau.jpg"))));
actor.setScale(0.1f);
stage.addActor(actor);
actor.addListener(new InputListener()
{
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button)
{
System.out.println("down"+Math.random());
return true;
}
});
}
@Override
public void render()
{
stage.act();
stage.draw();
}
MyActor是一个带有rendertexture的简单类扩展Actor。
活动开始时运行良好。
但是,当调整帧大小时,当演员按需要拉伸时,单击的坐标不会更新,因此会放错位置
如何使用项目的新大小作为事件的基础来制作阶段?您需要在应用程序的“调整大小”方法中更新阶段的视口,如下所示:
public void resize(int width, int height) {
stage.setViewport(stage.getWidth(), stage.getHeight(), false, 0, 0, width, height);
}
您需要在应用程序的“调整大小”方法中更新阶段的视口,如下所示:
public void resize(int width, int height) {
stage.setViewport(stage.getWidth(), stage.getHeight(), false, 0, 0, width, height);
}
您需要在应用程序的“调整大小”方法中更新阶段的视口,如下所示:
public void resize(int width, int height) {
stage.setViewport(stage.getWidth(), stage.getHeight(), false, 0, 0, width, height);
}
您需要在应用程序的“调整大小”方法中更新阶段的视口,如下所示:
public void resize(int width, int height) {
stage.setViewport(stage.getWidth(), stage.getHeight(), false, 0, 0, width, height);
}
为此,我认为必须使用camera.project()方法 摄像机项目(矢量3世界点)
这对你有用吗?我认为你必须使用camera.project()方法来实现这一目的 摄像机项目(矢量3世界点)
这对你有用吗?我认为你必须使用camera.project()方法来实现这一目的 摄像机项目(矢量3世界点)
这对你有用吗?我认为你必须使用camera.project()方法来实现这一目的 摄像机项目(矢量3世界点)
这对您有效吗?对我有效的方法与上面提到的方法类似,但您必须稍微修改一下:
public void resize(int width, int height) {
stage.getViewport().update(width, height);
}
您不应该使用Gdx.graphics.width和height,而应该真正使用resize()提供给您的功能。对我有效的功能与上面提到的类似,但您必须稍微修改它:
public void resize(int width, int height) {
stage.getViewport().update(width, height);
}
您不应该使用Gdx.graphics.width和height,而应该真正使用resize()提供给您的功能。对我有效的功能与上面提到的类似,但您必须稍微修改它:
public void resize(int width, int height) {
stage.getViewport().update(width, height);
}
您不应该使用Gdx.graphics.width和height,而应该真正使用resize()提供给您的功能。对我有效的功能与上面提到的类似,但您必须稍微修改它:
public void resize(int width, int height) {
stage.getViewport().update(width, height);
}
您不应该使用Gdx.graphics.width和height,而应该真正使用resize()提供给您的内容。根据他使用的libgdx版本,它可能必须是
stage.getViewport().update(Gdx.graphics.width,Gdx.graphics.height,true)
您的解决方案正在运行;但是,它们会调整视口的大小,使精灵保持相同的大小,并且我的布局会脱离框架。我需要实际拉伸图像,使游戏布局在不同的大小上相同。我不确定我是否能提供帮助,上面的代码直接来自我的游戏,并且在调整大小时确实会拉伸所有内容。根据他使用的libgdx版本,它可能必须是stage.getViewport().update(Gdx.graphics.width,Gdx.graphics.height,true)
您的解决方案正在运行;但是它们调整了视口的大小,使精灵保持相同的大小,而我的布局脱离了框架。我需要实际拉伸图像,使游戏布局以不同的大小保持一致。我不确定我是否能帮上忙,上面的代码直接来自我的游戏,它实际上在调整大小。根据他使用的libgdx版本,它可能必须是stage.getViewport().update(Gdx.graphics.width,Gdx.graphics.height,true)
您的解决方案正在运行;但是它们调整了视口的大小,使精灵保持相同的大小,而我的布局脱离了框架。我需要实际拉伸图像,使游戏布局以不同的大小保持一致。我不确定我是否能帮上忙,上面的代码直接来自我的游戏,它实际上在调整大小。根据他使用的libgdx版本,它可能必须是stage.getViewport().update(Gdx.graphics.width,Gdx.graphics.height,true)
您的解决方案正在运行;但是它们调整了视口的大小,使精灵保持相同的大小,而我的布局脱离了框架。我需要实际拉伸图像,使游戏布局以不同的大小保持一致。我不确定我是否能帮上忙,上面的代码直接来自我的游戏,它实际上在调整大小。