如何在libgdx Scene2d的舞台上放大和缩小?

如何在libgdx Scene2d的舞台上放大和缩小?,第1张

概述我正在使用libgdx进行2D游戏,并将六角形演员添加到一个组中,然后将其添加到舞台中.对于普通相机,您可以在渲染方法中使用camera.zoom进行放大和缩小,同时使用camera.translate来平移世界各地.我一直在使用stage.getCamera()获取舞台使用的相机,我仍然可以调用stage.getcamera().但

我正在使用libgdx进行2D游戏,并将六角形演员添加到一个组中,然后将其添加到舞台中.对于普通相机,您可以在渲染方法中使用camera.zoom进行放大和缩小,同时使用camera.translate来平移世界各地.

我一直在使用stage.getCamera()获取舞台使用的相机,我仍然可以调用stage.getcamera().但是没有stage.getCamera().zoom选项.

这是我的代码:

//import statementspublic class HexGame implements ApplicationListener{private Stage stage;private Texture hexTexture;private Group hexGroup;private int screenWIDth;private int screenHeight;@OverrIDepublic voID create() {    hexTexture = new Texture(Gdx.files.internal("hex.png"));    screenHeight = Gdx.graphics.getHeight();    screenWIDth = Gdx.graphics.getWIDth();    stage = new Stage(new ScreenVIEwport());    hexGroup = new HexGroup(screenWIDth,screenHeight,hexTexture);    stage.addActor(hexGroup);}@OverrIDepublic voID dispose() {    stage.dispose();    hexTexture.dispose();}@OverrIDepublic voID render() {    Gdx.gl.glClear(GL20.GL_color_BUFFER_BIT);    stage.act(Gdx.graphics.getDeltaTime());    stage.draw();    handleinput();    stage.getCamera().update();}private voID handleinput() {    if (Gdx.input.isKeypressed(input.Keys.left)) {        stage.getCamera().translate(-3, 0, 0);    }    if (Gdx.input.isKeypressed(input.Keys.RIGHT)) {        stage.getCamera().translate(3, 0, 0);    }    if (Gdx.input.isKeypressed(input.Keys.DOWN)) {        stage.getCamera().translate(0, -3, 0);    }    if (Gdx.input.isKeypressed(input.Keys.UP)) {        stage.getCamera().translate(0, 3, 0);    }    //This is the part that doesn't work    /*    if (Gdx.input.isKeypressed(input.Keys.Z)) {        stage.getCamera().zoom += 0.02;    }    */    }@OverrIDepublic voID resize(int wIDth, int height) {    stage.getVIEwport().update(wIDth, height);}@OverrIDepublic voID pause() {}@OverrIDepublic voID resume() {}}

任何帮助表示赞赏,如果我的代码有任何其他问题,请告诉我,我是libgdx的新手.谢谢

解决方法:

Zoom可在OrthographicCamera类中使用,默认情况下Stage类创建OrthographicCamera

/** Creates a stage with a {@link ScalingVIEwport} set to {@link Scaling#stretch}. The stage will use its own {@link Batch}     * which will be disposed when the stage is disposed. */    public Stage () {        this(new ScalingVIEwport(Scaling.stretch, Gdx.graphics.getWIDth(), Gdx.graphics.getHeight(), new OrthographicCamera()),            new SpriteBatch());        ownsBatch = true;    }

所以你需要的是将你的相机投射到OrthographicCamera:

((OrthographicCamera)stage.getCamera()).zoom = 0.02f;

总结

以上是内存溢出为你收集整理的如何在libgdx Scene2d的舞台上放大和缩小?全部内容,希望文章能够帮你解决如何在libgdx Scene2d的舞台上放大和缩小?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存