处理文本按钮的首选视口 libgdx
Preffered viewPort to dealing with textButton libgdx
我在玩一个新游戏,我创建了 2 个摄像头,一个用于真实世界,另一个 (GUI) 用于静态分辨率 (800 x 480)
private void init () {
camera = new OrthographicCamera(16,9);
camera.position.set(0, 0, 0);
camera.update();
cameraGUI = new OrthographicCamera(800,480);
cameraGUI.position.set(0, 0, 0);
cameraGUI.update();
我想在我的游戏中使用文本按钮,所以我使用新的 fitViewPort 创建了一个新舞台
fitViewPort=new FitViewport(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
gameController.stage=new Stage(fitViewPort);
然后我使用我的位图字体创建我的 textButtons 并在桌面上尝试它,它很棒
desktop
但是当我尝试另一个设备时,位置不一样
Tablet
然后我认为我的视口使用 cameraGui 宽度和高度,字体拉伸非常糟糕
任何帮助请:(
不要为 GUI 创建一个特殊的相机,因为视口已经有一个相机。
固定视口的宽度和高度,在您的情况下:
fitViewPort = new FitViewport(800, 480);
gameController.stage = new Stage(fitViewPort);
然后只需将演员添加到舞台并通过调用方法绘制即可
gameController.stage.draw();
注意:记得在调整大小的方法中添加gameController.stage.getViewport().update(width, height);
。
编辑:使用小的固定视口(800x480 很小)会导致缩放,这就是字体被拉伸的原因。例如,如果您 运行 在 1920x1080 显示器上使用 800x480 布局,它将缩放 225%。
你可以做的是生成一个大尺寸的字体,并为其数据 fe 设置比例。 bitmapFont20.getData().setScale(0.5F);
(在本例中,字体由 FreeTypeFontGenerator 生成,大小为 40)。使用此技巧,您将能够获得很好的结果。证明如下。它是缩放到 1920x1080 的 640x360F * (float) Gdx.graphics.getHeight() / (float) Gdx.graphics.getWidth()
视口。生成的字体大小为 72,然后数据比例设置为 0.5F
这是相同的文本,但没有修改数据比例。
我在玩一个新游戏,我创建了 2 个摄像头,一个用于真实世界,另一个 (GUI) 用于静态分辨率 (800 x 480)
private void init () {
camera = new OrthographicCamera(16,9);
camera.position.set(0, 0, 0);
camera.update();
cameraGUI = new OrthographicCamera(800,480);
cameraGUI.position.set(0, 0, 0);
cameraGUI.update();
我想在我的游戏中使用文本按钮,所以我使用新的 fitViewPort 创建了一个新舞台
fitViewPort=new FitViewport(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
gameController.stage=new Stage(fitViewPort);
然后我使用我的位图字体创建我的 textButtons 并在桌面上尝试它,它很棒 desktop
但是当我尝试另一个设备时,位置不一样 Tablet
然后我认为我的视口使用 cameraGui 宽度和高度,字体拉伸非常糟糕
任何帮助请:(
不要为 GUI 创建一个特殊的相机,因为视口已经有一个相机。
固定视口的宽度和高度,在您的情况下:
fitViewPort = new FitViewport(800, 480);
gameController.stage = new Stage(fitViewPort);
然后只需将演员添加到舞台并通过调用方法绘制即可
gameController.stage.draw();
注意:记得在调整大小的方法中添加gameController.stage.getViewport().update(width, height);
。
编辑:使用小的固定视口(800x480 很小)会导致缩放,这就是字体被拉伸的原因。例如,如果您 运行 在 1920x1080 显示器上使用 800x480 布局,它将缩放 225%。
你可以做的是生成一个大尺寸的字体,并为其数据 fe 设置比例。 bitmapFont20.getData().setScale(0.5F);
(在本例中,字体由 FreeTypeFontGenerator 生成,大小为 40)。使用此技巧,您将能够获得很好的结果。证明如下。它是缩放到 1920x1080 的 640x360F * (float) Gdx.graphics.getHeight() / (float) Gdx.graphics.getWidth()
视口。生成的字体大小为 72,然后数据比例设置为 0.5F
这是相同的文本,但没有修改数据比例。