1

クライアント向けに塗り絵アプリを作成していますが、順調に進んでいます。実際、それは終わったので、とても良いです。ただし、問題が 1 つあります。色によっては、期待どおりに表示されないことがあります。

クライアントは、ブラシの作成に使用するイメージとキーを提供してくれました。カラー リファレンスを使用して、さまざまなサイズの円を作成し、色ごとに使用して、さまざまなブラシ サイズを表現しました。次に、ブラシを次のようにロードします。

    brush = [[CCSprite spriteWithFile:@"yellowbrush3.png"] retain];
    [brush setBlendFunc: (ccBlendFunc) { GL_ONE, GL_ONE_MINUS_SRC_ALPHA }];  
    [brush setOpacity:20];

この特定のファイルのブラシ イメージは次のとおりです。

黄色いブラシ

ブラシの作成に使用したキーと比較するために、出力された色のスクリーンショットを作成しました。

いくつかの色見本

色の約半分は問題なく表示されますが、他の色はかなり目立ちます.

いくつかの GL 設定を変更して、さまざまなレベルの不透明度を試しましたが、何も役に立たないようです。

4

1 に答える 1

2

これは、ブレンディング アーティファクトと、白い背景に描画しているという事実によるものです。これを確認するには、背景色を変更し、各色の色相がわずかに変化することを確認します。この問題を修正するには、ペイントした色の不透明度を下げるか、より適切なブレンド モードを選択します。

両方のパラメーターglBlendFuncに使用するように変更してみてください。GL_ONEこれによりブレンドが削除されますが、少なくとも色は 100% 正確である必要があります。

于 2012-04-04T21:13:43.540 に答える