我想在SDL中創建一個假的「爆炸」效果。爲此,我希望屏幕能夠從當前的屏幕上消失,然後褪色成白色。SDL透明覆蓋
本來,予想過使用SDL_FillRect像這樣(其中explosionTick是當前alpha值):
SDL_FillRect(screen , NULL , SDL_MapRGBA(screen->format , 255, 255 , 255, explosionTick));
但是,而不是相反的衰落矩形,它顯示了完全白色不帶alpha。另一種方法我嘗試涉及使用填充有透明白色(爲1的α值)的全屏幕的位圖,並且一旦的blit它爲每個explosionTick像這樣:
for(int a=0; a<explosionTick; a++){
SDL_BlitSurface(boom, NULL, screen, NULL);
}
但是,這結束了被減慢到實時運行。 有沒有簡單的方法來實現這種效果而不會失去性能?感謝您的時間。
使用大於1的alpha值?它會不那麼流暢但更快。 – Alink 2012-03-04 23:14:36
雖然使用大於1的alpha增量可以用於圖像方法,但我希望有一種方法不同於使用預製圖像。 – Shalmezad 2012-03-04 23:17:37