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 を作成しています。この後、 Pixmap.fillCircle() メソッドを使用して透明な円を描いています。そして、この Pixmap を使用して新しいテクスチャを作成しています。次のデバイスを使用してこのコードをテストしました: 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) に問題があることがわかりました。黒い画面しか表示されません。
ですから、誰かがこの問題について説明してくれたらうれしいです。リンク、考え - 何か役に立つかもしれません。前もって感謝します!