我在更新循环中使用以下代码
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);
为什么在运行淡入淡出动画时它会闪烁,如果可能的话,解决方案会很好。
答案 0 :(得分:0)
解决了这个问题,对于任何想知道这个问题的人来说,由于我正在添加一个双倍,因此alpha低于0且高于255。