Pong, el juego

Hola de nuevo.

En la entrada anterior se ha explicado cómo comenzar a programar el juego Pong, vimos qué variables y constantes son necesarias y dimos algún consejo de buenas prácticas. Vimos también los eventos de teclado para que cada jugador disponga de dos teclas para mover su pala. Hoy vamos a terminar el código para que el juego funcione y nos permita medir nuestra pericia con algún compañero o amigo.

Si recapitulamos a entradas anteriores donde se explicaba la forma de animar objetos en un DrawingArea, recordaremos que usábamos un Timer con un delay de 16ms, que equivale mas o menos a 60 fps. El evento del timer se dispara 60 veces por segundo refrescando el DrawingArea que a su vez dispara su evento Draw. Todo el código que situemos dentro del evento Draw se ejecutará 60 veces por segundo, código que en su mayoría son rutinas y cálculos de dibujo, dando la sensación de animación. Veamos el código completo de ese evento y después lo analizamos:
Leer más Pong, el juego

DrawingArea y su evento Draw() – II

Retomando el post anterior, vamos a ver -ahora sí- cómo funciona realmente el evento Draw del DrawingArea y cómo nos va a facilitar las cosas para crear movimiento, gráficos incluso algún juego interactivo.

Anteriormente vimos que la Propiedad Cached debía de establecerse a True para evitar el borrado de nuestros dibujos y que para dibujar debíamos de encerrar nuestras sentencias de dibujo entre dos métodos Draw.Begin(device) y Draw.End(). Pues bien, si ahora  hacemos lo contrario, es decir, establecemos Cached = False y omitimos los métodos Begin y End… bueno alguno habrá comprobado que Leer más DrawingArea y su evento Draw() – II

DrawingArea y su evento Draw()

Aprovechando que ya casi está terminado el curso de “Programación Interactiva en Python” de la plataforma Coursera, voy a hacer un recorrido por los proyectos acometidos que básicamente usan un widget capaz de dibujar en él. En el caso de la herramienta que proporcionan durante el curso (CodeSkulptor) dispone de una clase “simplegui” que han creado sus autores y que no es más que un wrapper del elemento Canvas de HTML5, con una interface Python. En realidad esto es lo más parecido al control DrawingArea de Gambas, y en esta serie de posts trataré de reproducir cada uno de estos proyectos usando como superficie de dibujo dicho control. Ciertamente existen otros componentes que están mejor enfocados al dibujo y la creación de juegos, como SDL y OpenGL, pero de momento nos vamos a centrar sólo en DrawingArea porque además tiene un gran potencial como base para crear otros controles gráficos.

Leer más DrawingArea y su evento Draw()