0

更新ループで次のコードを使用します

    if (!flip){
        if (alpha > 0){
            alpha -= Ticks;
        }
        else{
            Ticks = 0;
            flip = true;
        }
    }
    else{
        if (alpha < 255){
            alpha += Ticks;
        }
        else{
            if (transition == 1){
                screenManager->ChangeState(new Menu(render));
            }
            Ticks = 0;
            alpha = 255;
            transition = 1;
            flip = false;
        }

    }

ここに私の描画コードがあります

        if (transition == 0){
    background->Draw(&screen);
}
else{
    background2->Draw(&screen);
}


SDL_SetRenderDrawColor(render, 0, 0, 0, alpha);
SDL_RenderFillRect(render, &dstrect);

アニメーションでフェードを実行するとちらつくのはなぜですか。可能であれば解決策があればいいのですが。

4

1 に答える 1

0

問題を修正し、それを知りたい人のために、私がダブルを追加していたためにアルファが 0 より低く 255 を超えたことが原因でした。

于 2014-07-03T16:42:56.787 に答える