Esercizio 10


Java Sun

Earthweb
(ex Gamelan)

Jars

Java Boutique

JavaWorld

PIP






  Es.10

Un videogioco elementare (2)
Per inserire il punteggio nel nostro gioco (cf Es.9), basta aggiungere un frame apposito ("scoreFrame"). In questo frame verrà visualizzato il punteggio e il numero di bombe rimanenti (in tutto ci sono 15 bombe). Quando le bombe saranno esaurite, il gioco smetterà ed apparirà la scritta "Game Over" con il punteggio finale. Il codice per scoreFrame:

Font fo = new Font("Dialog", Font.BOLD,20);
Font fon = new Font("Dialog", Font.PLAIN,15);
Font fon2 = new Font("Dialog", Font.BOLD,18);
int numeroBombe;
int score;


void iniziaScore(int width, int height){
	numeroBombe = 0;
	score = 0;
	}

void scoreFrame(Graphics g,int width, int height){

	if(numeroBombe < 16){
	g.setColor(Color.red);
	g.setFont(fo);
	g.drawString("Punteggio: "+score,width-200,25);
	g.setFont(fon);
	g.setColor(Color.lightGray);
	g.drawString("Bombe rimaste: "+(15-numeroBombe),width-200,50);
	}
	if(numeroBombe >= 16){
	stop();
	g.setColor(Color.cyan);
	g.fillRect(0,0,width,height);
	g.setFont(fo);
	g.setColor(Color.red);
	g.drawString("GAME OVER!",width/2-20,height/2-20);
	g.setColor(Color.black);
	g.drawString("GAME OVER!",width/2-18,height/2-18);
	g.setFont(fon2);
	g.drawString("Punteggio: "+score,width/2-20,height/2+15);
    }
}


Naturalmente bisogna poi aggiungere un'istruzione che diminuisca il numero di bombe ogni volta che viene premuto il tasto "freccia giù":

else if(code == KeyEvent.VK_DOWN){
/*la bomba inizia a cadere, ma non sta ancora cadendo*/
	if(bombaCade == false){bombaCade = true;}
	numeroBombe += 1;
	}


e un'istruzione per aumentare lo score ogni volta che la nave viene colpita:
else if(Math.abs(bombaCentroX - naveCentroX)<= 40 &&
Math.abs(bombaCentroY-naveCentroY)<= 20){
//nave colpita, inizia l'esplosione
	esplosioneFrameNb = 1;
	iniziaBomba(width,height);
	score += 1;
	bombaCentroX = aeroCentroX;
	}



Bene, la prossima tappa consiste nel fare un gioco a due livelli, per superare il primo livello il giocatore dovrà avere ottenuto un score > 6/15; alla fine del primo livello ci sarà quindi una pausa con controllo del punteggio. Ci vorrà inoltre una scritta che indica il livello e già che ci siamo, inseriamo un pò di suoni: un file ("spacemusic.au") in loop da sottofondo e il suono dell'esplosione della nave quando viene colpita ("explosion-3.au").

Il risultato deve assomigliare a:



Per scaricare i files audio.

Per scaricare il codice.

Per scaricare una versione completa del gioco come applicazione (3 livelli, punteggio con i records ricaricati ad ogni partita,...). Leggere il file REadMe.txt



 next		content		previous