C ++ sdl2在淡入淡出动画时闪烁

时间:2014-07-02 18:53:20

标签: c++ sdl flicker visual-glitch

我在更新循环中使用以下代码

    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);

为什么在运行淡入淡出动画时它会闪烁,如果可能的话,解决方案会很好。

1 个答案:

答案 0 :(得分:0)

解决了这个问题,对于任何想知道这个问题的人来说,由于我正在添加一个双倍,因此alpha低于0且高于255。