libgdx 如何缩放 BitmapFont 以更改屏幕尺寸?

libgdx How do I scale a BitmapFont to changing screen sizes?(libgdx 如何缩放 BitmapFont 以更改屏幕尺寸?)
本文介绍了libgdx 如何缩放 BitmapFont 以更改屏幕尺寸?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想要的是在更改屏幕尺寸时相应地更改大小的位图字体.我的意思是在我的电脑上,字体看起来相当大,但在我的手机上,它是一种难以阅读的小字体.我可以更改大小,但我希望它在所有屏幕上看起来都相似,而不是在一个屏幕上大而在另一个屏幕上小.这是我的代码,看看我必须使用什么:

What I want to have is the Bitmap Font to change in size accordingly when changing screen sizes. What I mean is on my computer, the font appears rather large, but on my phone, it is a little font that is harder to read. I could change the size, but I want it to look similar on all screens, instead of having it large on one screen and smaller on another. Here is my code to see what I have to work with:

public void render() {
    //score system
    scoreFont.setColor(1.0f, 1.0f, 1.0f, 1.0f);
    scoreBatch.begin(); 
    scoreFont.draw(scoreBatch, Long.toString(getScore()), 10, Gdx.graphics.getHeight() - 10); 
    scoreFont.setScale(3, 3);
    scoreBatch.end();
}

public void resize(int width, int height) {
    camera.viewportWidth = 450;
    camera.viewportHeight = 250;
    camera.update();
    stage.setViewport(450, 250, true);
    stage.getCamera().translate(-stage.getGutterWidth(), -stage.getGutterHeight(), 0);
}

推荐答案

这样想,你总是希望有相同的比例.

Think of it this way, you always want to have the same ratio.

例如:

500/3 = 450/x

500/3 = 450/x

x 是文本的新大小.所以你必须做一些交叉乘法.

x is the new size of your text. So you have to do some cross multiplying.

500x = 1350

500x = 1350

1350÷500 = x

1350÷500 = x

所以现在以编程方式执行此操作.

So now to do this programmatically.

public void resizeText(float width, float currentSize, float currentWidth){
    //currentWidth/currentSize = width/x
    a = width * currentSize;//450 * 3 in example above
    b = a/currentWidth;
    return b;//returns the x or the new size that your text should be
}

你还说它需要根据大小超过一定数量而改变.

Also you said that it needs to change depending on of the size is over a certain amount.

所以这是我设计的一个小东西

So here's a little thing I've devised

ApplicationType appType = Gdx.app.getType();
   if (appType == ApplicationType.Android || appType == ApplicationType.iOS) {
        screenFont.setScale(your number)
    } else { screen font.setScale(otherNum)} //if its a desktop

这篇关于libgdx 如何缩放 BitmapFont 以更改屏幕尺寸?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)