Juego Completo I

Siguiendo con las entregas sobre la utilización de la librería processing.js, vamos a utilizar los conocimientos adquiridos hasta el momento para implementar un juego completo que incorpora elementos multimedia y usa arrays para facilitar el incremento de dificultad. El objetivo de este juego será disparar a los círculos que van creciendo antes de que exploten de forma natural.

Para el control de las bolas, utilizaremos un array de tres dimensiones, en el que almacenaremos la coordenada x, la coordenada y y el tamaño de la bola.

int[][][] targets = {{320, 240, 10}};

Por defecto comenzarán en tamaño 10 y se ha definido un tamaño máximo de 99. Inicialmente solo aparecerá una bola, pero de forma progresiva al avanzar en puntuación, lanzaremos la función que incrementa los elementos del array mediante un append(targets, {0,0,0}).

if ( ( puntos - (targets.length * 250) ) > 0 ){sumar_target();}

Resulta importante comentar, que la interacción con el juego se realiza a través del ratón, y es por ello que utilizamos la función mouseClicked para determinar si el disparo incide en una bola mediante la comprobación de las coordenadas con cada elemento del array. Para ello utilizamos una estructura en bucle while que recorre toda la longitud del array comprobando las coordenadas del objeto y el disparo.

void mouseClicked() {
    if (energy == 0){}else{            
        ammo = ammo - 1;
        var i=0;
        var contacto=0;
        while(contacto == 0 && i<targets.length){
            if ((mouseX >= (targets[i][0] - targets[i][2])) && (mouseX <= (targets[i][0] + targets[i][2])) && (mouseY >= (targets[i][1] - targets[i][2])) && (mouseY <= (targets[i][1] + targets[i][2]))){                
                puntos = puntos + limit_sup - targets[i][2];
                ammo = ammo + 1;                
                contacto = 1;                
                var sound = new Howl({urls: ['pop.wav']}).play();
                //Reposiciona target
                reposiciona(i);
                //Aumenta targets
                if ( ( puntos - (targets.length * 250) ) > 0 ){sumar_target();}
            }
        i+=1;
        }
        if (contacto == 0){
          var sound = new Howl({urls: ['ah.wav']}).play();    
        }       
    }  
}

En conclusión, mediante el uso de los elementos de interacción con el ratón, los arrays y un conjunto relativamente sencillo de instrucciones, hemos sido capaces de realizar un juego en javascript que va adaptando su dificultad de forma progresiva.