我在libgdx中使用纹理区域,我想调整图像大小。但是我发现我可以通过以下两种方法完成该任务:

batch.draw(texReg, 0, 0, 0, 0, texReg.getRegionWidth()*2, texReg.getRegionHeight()*2, 1, 1, 0);

batch.draw(texReg, 0, 0, 0, 0, texReg.getRegionWidth(), texReg.getRegionHeight(), 2, 2, 0);

这两种方法有什么区别?首先,我要修改width和height参数,而其他人要修改scaleX和scaleY参数。哪一个更有效?

最佳答案

由于您将0,0用作原点,因此两者之间没有区别。如果您使用其他原点,则第一个将相对于其左下角缩放精灵,而第二个将相对于原点缩放它。

从源头上看,第一个乘法运算减少了两个乘法运算,但这不足以具有任何意义。绘制方法有数十种操作。

07-24 09:33