0

私は時々黒い輪郭を持ち、時には緑にしたいいくつかのテキストを持っています。これは、2 つの StrokeFonts (1 つは黒のアウトライン、もう 1 つは緑のアウトライン) を使用することで実現できると考えました。その後、Textオブジェクトをインスタンス化するときに、必要なフォントを使用するだけです。

問題は、その後、他の条件に基づいてフォントのメインカラー (ストロークではなく内側) を設定する必要があることです。私のロジックは機能しますがsetColor()、ストロークを実行すると常に黒くなり、最初のロジックが役に立たなくなります。

ここに欠けているもの、またはこれを回避する別の方法はありますか? 使用する StrokeFont を決定した後、呼び出しをコメントアウトしましsetColor()た。ストロークが適切に表示されているため、呼び出しで上書きされていることがわかりsetColor()ます。

4

1 に答える 1

2

色を設定すると、既存の色の値が乗算されます。したがって、黒 (値 0) は決して色を変えません。しかし、白はあなたが望むどんな色にもなります。したがって、任意の色を想定するスプライトまたはテキストを作成する場合は、白から開始する必要があります。

ストロークフォントのストロークは塗りつぶしと同じテクスチャに描画されるため、ストロークに加えられた色調整は塗りつぶしに均等に色を付けるため、まだ問題があると思います。

より多くのフォントが必要になるか、実際に 2 つの Text オブジェクトを表示するアウトライン フォントと塗りつぶしフォントを使用するなど、別のレンダリング方法を選択します。いずれにせよ、 setColor が値に既存の値を乗算することを理解していれば、方法を見つけることができるはずです。

于 2013-06-19T18:18:32.017 に答える