Lezione 1 SpaceInvaders 1.0 e 1.1 - mario-mannone-peano-4a/Space-Invaders GitHub Wiki

Prima lezione della creazione Space Invaders by Mario Mannone

Creazione delle classi

Creiamo una classe Space, una classe Intro e una classe denominata SpaceInvaders.

Spiegazione della classe Space

Class Space extends Canvas

La classe Space rappresenta lo spazio all'interno del gioco, dove facciamo muovere i componenti. Estende Canvas perché, si tratta di "componenti dinamici" disegnati attraverso il metodo paint().

Questa classe è la schermata iniziale del videogioco, dove possiamo aggiungere i vari componenti attraverso dei metodi.

I metodi setBackground e setSize configurano le varie impostazioni scritte sulla classe Intro, dove appunto possiamo lavorare.

Il ciclo for permette il movimento dinamico delle scritte da una dimensione grande a un carattere medio-piccolo Perché richiamando il metodo this.repaint() che sarebbe la "forma esplicita" del metodo paint(), e tramite il metodo Thread.sleep(50) lo richiama e "si riduce" la grandezza e l'altezza di quello che andremo a disegnare, cioè il metodo paint().

Il metodo paint imposta il colore della scritta, la disegna e ne modifica il font. Tutto questo per ogni stringa che si va a disegnare.

Spiegazione della classe SpaceInvaders

La classe SpaceInvaders estende JFrame, quindi è una finestra sulla quale possiamo operare.

Richiamando il costruttore all'interno del metodo è possibile dare un nome alla nostra finestra. Possiamo addirittura mettere il comando per chiudere la finestra di gioco e ridimensionare la nostra finestra, che sul mio programma è settata su false quindi l'utente non può ridimensionarla.

La creazione di un'oggetto e fare this.add(intro) permette di aggiungere alla finestra l'implementazione della classe Intro, impacchettarla, renderla visibile, "attivarla" e aggiungere lo spazio.

SpaceInvaders 1.1

La classe Intro

Ho aggiunto l'attributo BufferStrategy che serve a rappresentare il meccanismo con cui organizzare la memoria complessa su un particolare Canvas o Window. Disegna su un singolo buffer posteriore e quindi sposta i contenuti in primo piano (display) in un unico passaggio, copiando i dati o spostando il puntatore video. Spostando il puntatore video si scambiano i buffer in modo che il primo buffer disegnato diventi il ​​buffer anteriore o ciò che è attualmente visualizzato sul dispositivo;

g.dispose() consente di riallocare le risorse utilizzate dal Graphics per altri scopi.

strategy.show() serve a mostrare la strategia del buffer.

Ho aggiunto un'istruzione che serve a disegnare un rettangolo in base alla dimensione della finestra da impostare, modificabile nella classe SpaceInvaders.