我正在使用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的舞台上放大和缩小?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)