我有一些没有透明像素的背景,然后有一些透明像素的精灵。在libGDX文档之后,我正在做这样的事情:
spriteBatch.begin();
spriteBatch.disableBlending();
spriteBatch.draw(background, ...);
spriteBatch.enableBlending();
spriteBatch.draw(sprite, ...);
spriteBatch.end();
但是,我刚刚阅读了这篇博文,建议你每次都必须使用开始/结束。
http://www.rengelbert.com/tutorial.php?id=179&show_all=true
spriteBatch.disableBlending();
spriteBatch.begin();
spriteBatch.draw(backgroundRegion, 0, 0, 320, 480);
spriteBatch.end();
spriteBatch.enableBlending();
spriteBatch.begin();
spriteBatch.draw(someTextureRegion1, 10, 30);
spriteBatch.draw(someTextureRegion2, 50, 20);
spriteBatch.draw(someTextureRegion3, 30, 90);
spriteBatch.end();
这真的需要吗?
我的代码似乎有用,没有报告错误,但我不知道如何测试它是否比第二个例子更好或更差。
答案 0 :(得分:3)
启用/禁用混合会导致批次刷新,这与调用end / begin几乎相同。不需要自己这样做,尽管你可能应该知道这种情况。因此,您不必调用结束/开始,但应该将混合更改为最小值。