Luk*_* Vo 6 java tint sprite libgdx spritebatch
我创建了一个AnimatedSprite类,绘制一个特定的TextureRegion.有时我需要一种色调效果,所以我设置(this.color是Color我的一个字段AnimatedSprite):
super.draw(batch, parentAlpha);
batch.setColor(this.color);
batch.draw(this.frames[this.currentFrame], x, y, originX, originY, width, height, scaleX, scaleY, rotation)
batch.setColor(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
但是,当我将AnimatedSprite颜色设置为黑色或任何颜色时,其他所有颜色都会有颜色.我甚至尝试flush(),结束批次并开始新的等等......但似乎没有任何工作.
请帮我正确应用色调效果.我会很感激任何想法.
小心共享可变Color对象!如果你这样做:
this.color = Color.WHITE;
Run Code Online (Sandbox Code Playgroud)
然后变异this.color,你会变异Color.WHITE,这通常是错误的!:)
在构造Color要变异的对象时始终制作副本:
this.color = new Color(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
libGDX中的许多对象都是可变的(而常规Java库中的类似对象是不可变的),因为libGDX(正确地)非常关注GC开销.
| 归档时间: |
|
| 查看次数: |
5795 次 |
| 最近记录: |