私の問題はAndroidまたはJavaに完全に共通するはずだと思いますが、ライブ壁紙プロジェクトにAndEngineを使用しています。最近まで、スケーリングの利点のために画像に SVG を使用していましたが、ベクター アートのグラフィカルな制限のために PNG に切り替えることにしました。新しいスプライトに適切に適用します。
現時点では、基本的にスプライトにいくつかの HSV 値を押し込んでいます。技術的には機能しますが、正しくは機能しません。以前のように、彩度または値/明るさを実際に制御していないようです。色自体は0.0または1.0に即座に設定されているかのように、2つのレベルしかないようです。非常に暗く、明らかに完全な値/明るさと彩度ではありません。
私がやっていることと、SVG 画像用に私が持っていた設定との間に実際の違いは見られないので、少し途方に暮れています。おそらく、AndEngine の奥深くのどこかで、すべてを適切に機能させるために別の何かが行われていたのでしょう。私が使用している関連コードは、多かれ少なかれ次のとおりです。
float[] temphsv = new float[3];
int colorAfter = 0;
Sprite tempSprite = new Sprite(x, y, 400, 600, mSprite);
temphsv[0] = 120;
temphsv[1] = 1.0f;
temphsv[2] = 1.0f;
colorAfter = Color.HSVToColor(temphsv);
tempSprite.setColor(Color.red(colorAfter), Color.green(colorAfter), Color.blue(colorAfter));
技術的には、コードの現在の方法では、画像は純粋な明るい緑色である必要がありますが、代わりにかなり暗い緑色で、まだ陰影を保持しています。SVG画像でうまく機能したので、これは些細なことだと思うので、私が欠けているものに関するヒントは素晴らしいでしょう.