9.7k 0

Programar con Xojo: crea tu propio juego para ordenador

Ya sabes que Xojo te permite crear todo tipo de sesudas aplicaciones, utilidades y, prácticamente, cualquier tipo de producto o solución que puedas imaginar… ¡incluyendo divertidos juegos! Además, ya sabes, lo harás de forma multiplataforma y nativa, de modo que podrás compilarán y ejecutarlas no sólo en macOS, ¡sino también en Windows y Linux!

De hecho, lo que te propongo en la entrega actual es que pasemos un rato divertido creando nuestro propio juego de “golpear al topo” (advertencia: ¡es altamente adictivo!).

En el vídeo que acompaña a este texto encontrarás todos los pasos necesarios para crear el proyecto desde cero, y en este enlace encontrarás tanto el proyecto de Xojo como también los recursos necesarios para completarlo: imágenes y también la música original que se estará reproduciendo en segundo plano mientras que intentas ganar al topo.

Las cosas importantes que aprenderás mientras ves el vídeo y revisas el código del proyecto (algo que te recomiendo especialmente que hagas) son varios de los conceptos que hemos ido viendo a lo largo de otras entregas pero, muy especialmente, una que es la clave para cualquier tipo de desarrollo: ¡creación y uso de las clases!

Por ejemplo, verás que el protagonista de nuestro juego (el topo) define tanto tu estado como su comportamiento (incluida la animación que lleva a cabo) dentro de la propia clase. Esto significa que todo está contenido ahí, y cualquier modificación posterior que quisiéramos realizar sólo requerirá modificar el código en la propia clase y no también en cualquier otra parte del proyecto.

Además, verás que dicha clase “Mole” es, a su vez, una subclase de Canvas; de modo que podrás observar cómo se realiza el dibujado de elementos personalizados en Xojo, tal y como ya vimos en otros artículo (¿recuerdas el dedicado a crear gráficas?)

Un elemento importante, y que es nuevo en este proyecto, es el uso de Delegados. Piensa en los Delegados como en la definición de una plantilla de función (signatura de método) que pasa a ser un tipo de dato en sí mismo, tal y como son String, Integer, Double, etc. ¿Qué significa esto y qué ventajas proporciona? Pues bien, al definir la signatura de una función como un tipo de dato significa que podrás utilizar dicho tipo de dato como cualquier otro, incluyendo la definición de propiedades.

ju

En la práctica el hecho de utilizar un Delgado como tipo de dato de, por ejemplo, una propiedad significa que podrás cambiar su valor (es decir la asignación del método que se vaya a ejecutar) en tiempo de ejecución. Una forma realmente flexible de proporcionar dinamismo o cambio en el comportamiento de la ejecución de código una vez que el programa ya se está compilando.

Otra clase importante de nuestro juego es la clase GameCoordinator (revisa su código). Dicha clase, como su nombre indica, será la encargada de controlar todos los elementos o componentes del juego que no han de tener conocimiento entre ellos. Por ejemplo, las instancias (objetos) de la clase Mole no tienen por qué saber cuál es el área del juego, y tampoco si existe o no un marcador encargado de llevar la puntuación (no es su responsabilidad); mientras que el marcador del juego no tiene por qué tener conocimiento de cuál es la mecánica del juego o del tipo y cantidad de personajes que pueda haber; después de todo, la función de un marcador es la presentación de valores.

También puede resultarte especialmente interesante el modo en el que se crea la animación del personaje (el topo) a partir de una serie de fotogramas fijos (en este caso imágenes PNG) y con un ritmo determinado. Para ello utilizamos la clase Timer, encargada de ejecutar el código asociado una vez que transcurra la cantidad de tiempo definida.

En fin, lo mejor es que veas el vídeo para ver cómo se construye el juego, que revises el código del proyecto Xojo que puedes descargar desde este enlace para comprender mejor cómo funciona todo y, lo más importante, ¡que te pases un buen rato y consigas la puntuación más alta!

Alf

Propietario de www.faq-mac.com.

Deja una respuesta