La clase Paint en Gambas3

De vuelta con lo que iba a ser una entrada dedicada a la clase Paint que incorpora Gambas3 y que posiblemente deje obsoleta a la clase Draw.

Las ventajas de la clase Paint son bastantes, por ejemplo y por citar las más evidentes, es que todos sus métodos soportan números Float y que incorpora un filtro Antialiasing para el suavizado de las líneas y las formas. Mi intención era explicar un poco cómo empezar a pintar, pero después de ver el ejemplo que viene con Gambas3, es un poco absurdo. Es uno de los mejores ejemplos que trae gambas y además de incorporar ejemplos de todo lo que se puede hacer con la clase Paint, se puede ver en otra solapa del mismo formulario el código que se ha usado para generar cada dibujo.

Por lo tanto, lo mejor es echar un vistazo al ejemplo “Painting” y estudiar un poco el código con una copia del programa, modificarlo y jugar con él para familiarizarse con sus métodos y propiedades.

Formulario del ejemplo Painting
Formulario del ejemplo Painting

En la próxima entrada usaremos la clase Paint y un poco de lógica para hacer un pequeño juego de Pong. Hasta entonces, espero que juguéis con con la clase Paint!

Colisiones y reflexiones

Hola. En la serie de artículos sobre el evento Draw() del DrawingArea vimos la forma de dibujar objetos y animarlos dentro de la superficie de dibujo, pero se nos plantean dos nuevas cuestiones relacionadas con el movimiento. Por una parte, si un objeto se mueve en línea recta lo que puede ocurrir  es que dicho objeto desaparezca para siempre al sobrepasar los límites de nuestro “lienzo” y por otro lado quizás lo que queremos es que ese objeto rebote contra algún otro cuerpo o los bordes del lienzo o reaparezca de nuevo en pantalla. Comencemos por el último caso. Leer más Colisiones y reflexiones

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()