Nei precedenti post è stato illustrato come le
informazioni individuali sono memorizzate nelle variabili e come
queste variabili possono essere manipolate attraverso l'uso di
operatori e funzioni. Tuttavia la maggior parte delle cose
rappresentate in un videogioco sono oggetti. Essi sono cose che
combinano qualità (come il livello di vita o energia) e abilità (la
possibilità di muoversi, attaccare o difendersi dal fuoco). Spesso
non ha senso parlare di qualità individuali e abilità separate le
une dalle altre. Fortunatamente la maggior parte dei moderni
linguaggi di programmazione permette di lavorare con oggetti software
(spesso chiamati solo oggetti) che combinano dati e funzioni.
Un elemento dati di un oggetto è chiamato membro dati,
mentre una funzione di un oggetto è chiamata funzione
membro Come esempio concreto, si
può pensare ad un'astronave nemica. Questa astronave aliena può
essere un nuovo tipo di oggetto chiamato Astronave,
definito nel gioco dal programmatore, la quale può avere un membro
dati per il suo livello di energia, e una funzione membro per
utilizzare la sua arma. In pratica il suo livello di energia è
rappresentata da un valore int
chiamato energia; mentre
la sua arma viene comandata dalla funzione faiFuoco().
Ogni oggetto che
condivide la stessa struttura di base, ne condivide membri dati e
funzioni. Tuttavia come oggetto individuale, questo valore dei dati
può differire da oggetto ad oggetto. Uno squadrone di cinque
astronavi possiederà cinque livelli di energia diversi. Ogni
astronave inoltre utilizzerà la sua arma individualmente richiamando
la propria funzione faiFuoco().
Una buona caratteristica
degli oggetti è che essi possono essere utilizzati senza doverne
conoscere la struttura interna, così come è possibile accendere la
radio senza doverla costruire da zero. Bisogna solo conoscere quali
sono le sue funzioni ed i suoi membri dati. Questi oggetti possono
essere memorizzati in variabili, come tipologie pre-costruite. Così
l'astronave nemica può essere memorizzata in una variabile del tipo
Astronave. E' possibile accedere ai membri dati e alle
funzioni membro attraverso l'operatore (.), inserendolo dopo il nome
della variabile. Così se si desidera che l'astronave aliena, nave,
spari con la sua arma solo se il suo livello di energia è
maggiore di 10, si può scrivere il seguente codice:
if (nave.energia > 10) nave.faiFuoco();
nave.energia accede al dato energia dell'oggetto, mentre nave.faiFuoco() richiama la funzione membro. Anche se è possibile utilizzare nuovi tipi di oggetti, descritti dal programmatore. Ti è possibile lavorare con tipologie predefinite di oggetti. Oggetto dei prossimi post.
Nessun commento:
Posta un commento