I'd like to be able to make the screen like blurry and wavy, like when a player enters a portal in Minecraft.
How would I make this with pygame?
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It only takes a minute to sign up.
Sign up to join this communityMy suggestion would be to use surfarrays in conjunction with NumPy.
Assuming you already have an algorithm for the post-processing effects you want, all you'll have to do is port it into NumPy syntax, which will probably just take some tinkering. Examples of usage can be found here, here, here, and here.
After manipulating the surface, you just have to take whatever is output and blit it back to the screen.
A word of warning: full screen processing in pygame, even with surfarrays and NumPy, can be very slow. I once tried to create a desaturation post-processing effect for a pygame game, and struggled to get the game to run at 30fps at something like 640x480 resolution. Of course, if you get speedy results, I'd love to see how you did it :)