Cuando ejecuto el siguiente código, la imagen se agota en la pantalla. ¿Cuál puede ser el problema?

Hubiera sido más fácil de encontrar si pudiéramos ver cómo se ve visualmente.
No he usado pygame antes, pero parece que no estás proporcionando coordenadas correctas a la imagen para renderizar. Intente usar una combinación diferente de coordenadas y vea si puede identificar el problema.
Si todavía está atascado, intente preguntar por stackoverflow, en lugar de quora. Las estrictas reglas de preguntas le ayudarán a resolver el problema usted mismo.

Por cierto, acabo de leer su código y entendí el problema. Está utilizando valores exactos para cambiar de dirección, pero por lo que puedo decir, ninguna de sus condiciones afectará nunca.
La posición inicial de y es 32. Está utilizando un incremento de 10 y verificando valores en un múltiplo de 5, por lo que 32 nunca será un múltiplo de 5 y su imagen se quedará sin pantalla.
Una mejor manera sería usar el rango en lugar de los valores exactos para el cambio de dirección.
Por ejemplo, si y es mayor que 25, cambie la dirección a la izquierda.
Para superar el problema de volver a ingresar en la condición en cada iteración, puede verificar si la dirección ya se ha dejado. Si no es así, permita que ingrese la condición.

Supongo que entendiste la lógica. Aún así, si desea ver el problema con sus propios ojos, coloque una declaración de impresión para que se ejecute en cada cambio de iteración / dirección, mencionando las coordenadas xy actuales y la dirección actual.