jueves, 28 de julio de 2022

GBDK-2020 (II)

 Esqueleto básico de un juego en GBDK


Todos los juegos realizados con GBDK-2020 Utilizan un esqueleto común, con algunas variaciones a modo de template, por este motivo, vamos a analizar uno de estos, el que use yo para aprender esta tecnología y lo analizaremos para intentar entenderlo



//includes and imports

#include <gb/gb.h>


//Variables area 


//functions declarations area


void checkInput();

void updateSwitches();


//Main function

void main() {

while(1) {

checkInput();

updateSwitches();  

wait_vbl_done();

}

}


void updateSwitches() {

HIDE_WIN;

SHOW_SPRITES;

SHOW_BKG;

}


//Butons functions

void checkInput() {

// START

    if (joypad() & J_START) {

    }


}


Incluimos Vamos a analizar el código que hemos visto anteriormente para intentar entender como funciona:


#include <gb/gb.h>

Incluimos las librerias de gameboy en nuestro código, la librería gb.h es la que incluye la mayoria de las funnciones que necesitaremos para nuestros desarrollos


void checkInput();

void updateSwitches();

Declaramos las funciones que vamos a necesitar


void main() {

Funcion principal y de entrada del juego


while(1) {

Bucle principal del juego, este bucle se repite cíclica-mente para generar la sensación de animación y vida al juego, en cada ciclo se hacen los cambios necesarios en la pantalla y se muestran ademas de comprobar las pulsaciones de la botonera de la consola.


checkInput();

updateSwitches();

wait_vbl_done();

Llamadas a las funciones para comprobar que se a pulsado algún botón de la consola y refrescar la pantalla con los cambios


void updateSwitches() {

En el cuerpo de esta función especificaremos los refrescos de pantalla con constantes propias de la librería gb.h


HIDE_WIN;

SHOW_SPRITES;

SHOW_BKG;

Constantes de refresco de la libreira gb.h su funcion es mostrar los sprites y el fondo en cada ciclo de refresco.


void checkInput() {

En el cuerpo de esta función especificaremos los comportamientos de entrada de la consola por los botones


if (joypad() & J_START) {

Este condicional se ejecuta si se a pulsado el botón start de la consola, en este bloque añadiremos pues la lógica que queramos si el botón es pulsado


¿Qué opinas de esta entrada? ¿tienes dudas? espero tus comentarios.

No hay comentarios:

Publicar un comentario

Nos trasladamos

Blogger se nos queda pequeño, así que este blog migra a  jujubegames.com