Я хотел бы создать поддельный эффект «взрыва» в SDL. Для этого я хотел бы, чтобы экран шел от того, что он в настоящее время, и исчезает до белого.SDL Transparent Overlay
Первоначально я думал об использовании SDL_FillRect как так (где explosionTick является текущим значением альфа):
SDL_FillRect(screen , NULL , SDL_MapRGBA(screen->format , 255, 255 , 255, explosionTick));
Но вместо обратного замирания прямоугольника, он показывает совершенно белый не альфа. Другой метод, который я пытался участвовать, используя полноэкранный режим растрового изображения, заполненный прозрачным белым (с альфа-значением 1), и блитирования его один раз для каждого explosionTick так:
for(int a=0; a<explosionTick; a++){
SDL_BlitSurface(boom, NULL, screen, NULL);
}
Но это закончилось тем, что замедлится до работать в режиме реального времени. Есть ли простой способ достичь этого эффекта без потери производительности? Спасибо за ваше время.
Использовать значение альфа больше 1? Он будет менее плавным, но быстрее. – Alink
Хотя использование альфа-приращения больше 1 будет работать для метода изображения, я надеялся, что существует другой метод, чем использование готового изображения. – Shalmezad