我正在使用 libGDX 为 Android 开发游戏。我实现了“聚光灯效果”来突出教程关卡中的一些场景元素。我确实使用 Pixmap 类来实现这一点。所以我做了这样的事情:
public class ComplexSpotlight implements MoveObserver{
// somewhere in class
public void update(){
black.setColor(0, 0, 0, 0.7f);
black.fill();
black.setColor(0, 0, 0, 0);
for(Map.Entry<MoveObservable, Vector2> entry : currentObservablePositions.entrySet()){
Vector2 position = entry.getValue();
int x = (int)(Gdx.graphics.getWidth()/2+position.x);
int y = (int)(Gdx.graphics.getHeight()*1.5f-position.y);
int radius = 50;
black.fillCircle(x, y, radius);
System.out.println("at "+x+" "+y);
}
overlay.dispose();
overlay = new Texture(black);
}
public Texture getOverlayTexture(){
return overlay;
}
快速解释 - 我正在创建一个像素图,用颜色(0,0,0,0.7f)填充它。在此之后,我使用 Pixmap.fillCircle() 方法绘制透明圆圈。然后我正在使用这个像素图创建新的纹理。我使用以下设备测试了此代码:HTC One V(480*800)、Sony XPeria Neo 15i(480*854)、HTC Desire S(480*800),效果很好;
但是今天我发现 HTC One X(1280*720) 和 Gamsung Nexus(1280*720) 有问题 - 我只看到黑屏。
因此,如果有人给我一些关于这个问题的解释,那就太好了。链接,想法 - 任何事情都可能有帮助。提前致谢!