Después de experimentar con el juego de la serpiente, he querido llevar la idea un paso más allá: implementar física en tiempo real en PowerBuilder. El resultado es Space Bricks, un pequeño tributo a Arkanoid con un enfoque interesante: incluye dos motores de renderizado completamente distintos que se pueden elegir desde la ventana principal.
Dos formas de ejecutar el mismo juego
-
Modo nativo (PowerBuilder)
Todo el juego se renderiza en un único DataWindow con un solo detail band de 1870 PBU. Los elementos (ladrillos, pala y bola) se crean dinámicamente conModify()y se mueven en coordenadas PBU.
La detección de colisiones utiliza AABB (Axis-Aligned Bounding Box), una técnica habitual en motores de videojuegos. -
Modo HTML5
El mismo juego está implementado en JavaScript y se carga en un control WebBrowser medianteNavigateToString().
Renderizado con Canvas 2D a 60 FPS y física basada en delta time, ofreciendo una experiencia mucho más fluida.
Un launcher (w_main) permite elegir el modo mediante una interfaz HTML, usando RegisterEvent para comunicar JavaScript con PowerBuilder de forma directa y limpia.
Aspectos técnicos destacados
-
DataWindow como canvas
En lugar de usar múltiples filas, toda la rejilla (21×34) se almacena en una única columnachar(800)dentro de una sola fila. Esto permite tratar el DataWindow como un espacio de coordenadas continuo y mover la bola libremente sin cambiar filas ni visibilidades. -
Colisiones con AABB y rebote por mínima penetración
Al detectar impacto, se calcula la penetración en los cuatro lados del objeto. El menor solapamiento determina el eje de rebote. Este mismo algoritmo se usa tanto en la versión PB como en la HTML. -
Comunicación JS ↔ PB
El menú HTML invoca métodos PowerBuilder (window.webBrowser.ue_nativo()) medianteRegisterEvent, demostrando una integración sencilla sin soluciones complejas. -
Comparativa realista
La versión nativa alcanza ~25 FPS con algunos artefactos de repintado del DataWindow. La versión HTML funciona a 60 FPS con renderizado suave. Ambas son jugables, pero juntas muestran claramente las fortalezas de cada tecnología.
El proyecto
Todo está contenido en una única PBL con 4 objetos (aplicación, lanzador, juego nativo + DataWindow y versión HTML). No requiere base de datos ni archivos externos: abrir, compilar y jugar.
Descarga
Teneis el ejemplo publicado en modo solución de PowerBuilder 2025 en:
github.com/rasanfe/Pb_SpaceBricks
¡Nos vemos en el próximo artículo! Y recuerda: en PowerBuilder, los límites solo están en nuestra imaginación. 🚀

Tiene errores la solución, y no compila
ResponderEliminarAcaabo de descargarlo en otro ordenador y compila perfectamente, sin errores. Es una solución PowerBuilder 2025 build 3726. Dime que errores encuentras y en que versión estás. Saludos
Eliminar