您好我应该这样:

new BitmapFont().draw("Hello World!");
new BitmapFont().draw("Hello Universe!");


要么

BitmapFont font = new BitmapFont();
font.draw("Hello World!");
font.draw("Hello Universe!");


这对性能有影响吗?

最佳答案

第一个选择不仅更糟,而且根本不是一个选择。它泄漏内存。如果您每帧都这样做,那么您的游戏将很快在手机上崩溃。

绝对不能使用实现Disposable的任何东西,否则您将丢失参考,否则它会泄漏。

在大多数情况下,第二个选项很好。如果您有数十个在每一帧上具有相同文本的字符串,则可以使用从BitmapFont(someStringCache = new BitmapFontCache(bitmapFont);)创建的BitmapFontCaches,因此不必在每次绘制时都重新计算该字符串的字形排列。除非您发现游戏的帧率太低并且将问题缩小到CPU,否则我不会为之烦恼。

10-04 17:26