我与一个新的游戏,我有两个相机,一个相机的现实世界和另一个(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();我想在我的游戏中使用textButton,所以我用一个新的fitViewPort创建了一个新的阶段
fitViewPort=new FitViewport(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
gameController.stage=new Stage(fitViewPort);然后我使用位图字体创建我的textButtons,并在桌面上试用它,这是很棒的桌面
但是当我尝试另一个设备时,这个位置不是相同的平板电脑。
然后,我认为对于使用cameraGui宽度和高度作为我的视图端口,字体是非常糟糕的延伸。
请提供任何帮助:
发布于 2016-08-30 17:13:44
不要为GUI创建一个特殊的相机,因为viewport已经有了一个摄像机。
使您的视口宽度和高度固定,在您的情况下:
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); (在本例中,字体由大小为40的FreeTypeFontGenerator生成)。使用这个技巧,你将能够得到一个伟大的结果。证据在下面。它是640x360F * (float) Gdx.graphics.getHeight() / (float) Gdx.graphics.getWidth()的视口,缩放到1920x1080。生成大小为72的字体,然后将数据缩放设置为0.5F。

这里是相同的文本,但没有修改数据标度。

https://stackoverflow.com/questions/39232898
复制相似问题