首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止viewPort处理textButton libgdx

防止viewPort处理textButton libgdx
EN

Stack Overflow用户
提问于 2016-08-30 16:41:37
回答 1查看 77关注 0票数 0

我与一个新的游戏,我有两个相机,一个相机的现实世界和另一个(GUI)相机的静态分辨率(800 X 480)。

代码语言:javascript
复制
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创建了一个新的阶段

代码语言:javascript
复制
    fitViewPort=new FitViewport(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
    gameController.stage=new Stage(fitViewPort);

然后我使用位图字体创建我的textButtons,并在桌面上试用它,这是很棒的桌面

但是当我尝试另一个设备时,这个位置不是相同的平板电脑

然后,我认为对于使用cameraGui宽度和高度作为我的视图端口,字体是非常糟糕的延伸。

请提供任何帮助:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-30 17:13:44

不要为GUI创建一个特殊的相机,因为viewport已经有了一个摄像机。

使您的视口宽度和高度固定,在您的情况下:

代码语言:javascript
复制
fitViewPort = new FitViewport(800, 480);
gameController.stage = new Stage(fitViewPort);

然后添加演员到舞台,然后通过调用方法来绘制它。

代码语言:javascript
复制
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。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39232898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档