gpt4 book ai didi

java - 如何在 Slick2D 中对字体大小进行动画处理,而无需每次渲染创建新的字体实例?

转载 作者:行者123 更新时间:2023-11-30 06:47:16 25 4
gpt4 key购买 nike

我正在使用 Slick2D,它是 LWJGL 的包装器。我正在尝试对字符串的字体大小进行动画/缩放,而无需每次渲染创建新的 Font 和 TrueTypeFont 的性能成本。这是我目前拥有的:

public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {
Font pulsingFont = new Font("Verdana", Font.PLAIN, (int) Math.abs(Math.sin(frameCount) * 20) + 10);
TrueTypeFont pulsing = new TrueTypeFont(pulsingFont, true);
pulsing.drawString(200, 200, "Pulsing Text", Color.black);
}

public void update(GameContainer gc, StateBasedGame sbg, int DELTA) throws SlickException {
frameCount += 0.1;
}

我知道更改字体大小的唯一方法是在 Font 中,这意味着我还需要每个帧创建一个 TrueTypeFont 的新实例。仅这些行就造成了巨大的滞后。

那么有没有一种方法可以对字体大小进行动画处理,而无需每帧创建一个新实例?

最佳答案

是的,您可以缩放图形组件。但这会缩放所有内容,因此请确保在渲染文本后重新缩放它。

请注意,由于图形比例的增加/减少,您必须调整 x/y 位置。

来自 Slick2d 文档: http://slick.ninjacave.com/javadoc/org/newdawn/slick/Graphics.html :

    scale(float sx, float sy) 
Apply a scaling factor to everything drawn on the graphics context

这意味着您可以放大或缩小图形组件。渲染您的文本。将图形组件重新缩放至正常状态。完成其余的渲染。

关于java - 如何在 Slick2D 中对字体大小进行动画处理,而无需每次渲染创建新的字体实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43486796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com