Accediendo a los subpixels con Pygame mediante SubPixelSurface

Una de las limitaciones que posee Pygame, una librería para desarrollar juegos con Python, a la hora de dibujar sprites en pantalla es que sólo es posible hacerlo en coordenadas enteras. Esto, para algunos sprites pequeños, ej. partículas, es un salto demasiado grande y se ve feo en la pantalla. Will McGugan, de Where there is a Will, escribió un pequeño paquete que toma una superficie (un Surface) de Python y lo transforma en una superficie capaz de dibujar objetos con coordenadas fraccionales, justo como lo harías con OpenGL u otra librería 3D. Al hacer este procedimiento con el código de Will, el objeto mismo hace el cálculo de los subpíxeles, y combinado con la animación que le des al objeto el resultado es un movimiento muy suave, como lo demuestra un GIF de ejemplo a continuación:

Will McGugan SubPixelSurface DemonstrationWill McGugan SubPixelSurface DemonstrationWill McGugan SubPixelSurface DemonstrationWill McGugan SubPixelSurface DemonstrationWill McGugan SubPixelSurface Demonstration

Las pelotas de encima están dibujadas mediante sub-pixeles, y las pelotas de abajo con coordenadas enteras. La diferencia en la suavidad de movimiento es notable. Requiere el módulo Numpy para poder funcionar. También tiene la desventaja que el precálculo hecho a cada superficie requiere una buena cantidad de memoria, específicamente 9 veces más que una superficie normal para el nivel por defecto de precisión, por lo que es manejable para superficies relativamente pequeñas.

Si te gustó este artículo, suscríbete a la fuente RSS de este blog. Si así lo prefieres, puedes suscribirte por correo electrónico y recibir los artículos directamente en tu inbox (cero spam).

  • ¡Suscríbete al blog!

    ¡Suscríbete a mi feed! ¿Te gustan los artículos que se publican aquí? Asegúrate de leerlos recién salidos del horno suscribiéndote a nuestro feed, sin compromiso.

    ¿Tienes alguna sugerencia de juegos o alguna pregunta en general? Manda un correo a:
    Mi nombre separado por un punto, arroba gmail punto com

  • Suscríbete por email

    ¿Ya bloquearon mi blog en tu oficina? Recibe mis artículos por correo electrónico. Cero spam. Escribe tu correo a continuación:

    FeedBurner provee este servicio.

  • Archivos

  • Directorios