首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibGDX batch.draw与sprite.draw性能

LibGDX batch.draw与sprite.draw性能
EN

Stack Overflow用户
提问于 2021-01-26 17:08:59
回答 1查看 168关注 0票数 0

A和B之间哪种表现更好?

答:batch.draw(雪碧,x,y,宽度,高度);

B:sprite.draw(批);sprite.setPosition(x,y);

可能涉及到旋转或调整大小。如果你考虑的是性能而不是方便,还有什么更好呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-26 18:36:35

它们没有同等的结果,所以没有必要比较它们的性能。第一个(A)完全忽略雪碧的所有特征,如颜色、位置、比例和旋转。它永远不应该被使用,而且是可能的,因为一个不幸的设计决定让雪碧成为TextureRegion的一个子类。我认为libGDX的最初创建者基于GitHub上的评论承认了一个设计错误。

在我看来,Sprite类在大多数情况下根本不应该使用,因为它将TextureRegion (图像资产)与游戏世界对象(模拟数据)混为一谈。您应该定义您自己的GameObject类,它有一个TextureRegion变量和变量,用于您所使用的特性(宽度、高度、比例等)。然后使用任何具有参数的batch.draw重载来绘制它,以满足您所使用的所有特性。

为了更进一步,您可以编写自己的可绘制的抽象包装器类,该类可以包含用于保存TextureRegion或Animation<TextureRegion>的变体。然后,GameObject可以引用可绘图,并且可以轻松地将不同类型的资产交换为GameObject。

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

https://stackoverflow.com/questions/65905902

复制
相关文章

相似问题

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