• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 2 voto(i) - 4.5 media
  • 1
  • 2
  • 3
  • 4
  • 5
come lo strutturo un programma OO
#17
È un po' complicato da spiegare, comunque il meccanismo è abbastanza semplice... devi dividere il programma in sottoprogrammi (è un po' azzardato come termine) indipendenti tra loro.
La OOP è un metodo di affrontare il problema, puoi usarla sia con darkgdk per fare un gioco complesso che con solo c++ per fare una semplice calcolatrice o un hello world.

Immaginiamo parte di un gioco di navi spaziali. Abbiamo una navetta player e varie navette enemy.
In comune hanno: la possibilità di morire, la possibilità di cambiare velocità, la possibilità di sparare, ecc...
La navetta player ha: i comandi (sterzo, attacco, ecc...) gestiti dall'utente, un dato numero di vite, un punteggio, ecc...
Le navette enemy hanno: i comandi gestiti dall'AI, un dato numero di navette (il player è perforza uno), ecc...

Quindi si può strutturare in questo modo:

Classe = "navetta"
Attributi = "int velocità", "bool morte", ecc...
Metodi = "cambiaVelocità(int numero)", "controllaMorte(void)", "spara(void)" ecc...

Classe = "player" figlia di classe navetta (la classe player fa tutte le cose di navetta oltre le sue, questa cosa si chiama ereditarietà tra classi)
Attributi = "vite", "punteggio", ecc...
Metodi = "aggiungi_sottrai_Vita(int numero)", "gestisciControlli(void)", "aggiungi_sottrai_Punti(int numero)", ecc...

Classe = "enemy" figlia di classe navetta (anche qui il meccanismo di eredità, visto che anche i nemici sono navette spaziali)
Attributi = "numeroNemici", ecc...
Metodi = "comandiAI(void)", ecc...


Se io adesso dovessi perfezionare il gioco aggiungendo l'armatura alle navette ci metterei un secondo. Mi basterebbe aggiungere un attributo alla classe navetta e modificare leggermente il metodo "controllaMorte(void)".
Oppure se volessi mettere oltre ai normali nemici un boss mi basterebbe creare una classe figlia di "enemy" chiamata "boss". Così oltre a fare tutto ciò che fa "navetta" e "enemy" fa anche delle cose tutte sue (stessa cosa se volessi creare diversi tipi di nemici, ognuno con caratteristiche diverse dagli altri).

In questo modo creo delle classi, se volessi creare il giocatore e i vari nemici mi basta fare questo (posso farlo nel main oppure dentro altre classi):
player Giocatore1; //istanzio la classe player
enemy Nemico1;
enemy Nemico2;
enemy Nemico3;

Voglio far sparare il giocatore? Nel metodo "gestisciControlli()" metto:
if(premutoIlTastoSpazio = true) this.spara(); //notare che spara() si trova nella classe navetta, però essendo player figlia di navetta può farlo anche lei

Voglio far sparare il giocatore richiamando spara() dalla funzione main? Semplice:
Giocatore1.spara();




Mi rendo conto che è un po' difficile capire come funziona, al massimo fai qualche ricerca in internet riguardo la OOP perché faccio fatica a spiegarla... fai conto che questo è un piccolo esempio delle molte cose che si possono fare con questo metodo di programmazione.
Però ti assicuro che una volta che ti trovi dentro un programma strutturato in OOP ti viene sicuramente più facile modificarlo e trovare gli errori.
Tuttavia può essere difficile dividere in modo opportuno le varie classi, quindi se ancora non sei molto pratico con la programmazione strutturata direi che ti conviene approfondire meglio quella.

Se hai difficoltà a capire fammi sapere.
 
Rispondi
  


Messaggi in questa discussione
come lo strutturo un programma OO - da Zapetino - 26-11-2010, 12:29 PM
RE: come lo strutturo un programma OO - da steve - 26-11-2010, 06:04 PM
RE: come lo strutturo un programma OO - da Zapetino - 26-11-2010, 06:10 PM
RE: come lo strutturo un programma OO - da steve - 26-11-2010, 09:45 PM
RE: come lo strutturo un programma OO - da Zapetino - 26-11-2010, 09:57 PM
RE: come lo strutturo un programma OO - da Zapetino - 26-11-2010, 10:14 PM
RE: come lo strutturo un programma OO - da steve - 26-11-2010, 10:44 PM
RE: come lo strutturo un programma OO - da Zapetino - 26-11-2010, 10:47 PM
RE: come lo strutturo un programma OO - da steve - 27-11-2010, 06:42 PM
RE: come lo strutturo un programma OO - da Zapetino - 27-11-2010, 06:51 PM
RE: come lo strutturo un programma OO - da Zapetino - 27-11-2010, 07:46 PM
RE: come lo strutturo un programma OO - da Zapetino - 27-11-2010, 08:21 PM
RE: come lo strutturo un programma OO - da steve - 28-11-2010, 02:20 AM
RE: come lo strutturo un programma OO - da Zapetino - 28-11-2010, 02:04 PM
RE: come lo strutturo un programma OO - da Riddick - 28-11-2010, 02:04 PM
RE: come lo strutturo un programma OO - da Zapetino - 28-11-2010, 02:09 PM
RE: come lo strutturo un programma OO - da Riddick - 28-11-2010, 02:21 PM
RE: come lo strutturo un programma OO - da steve - 28-11-2010, 04:22 PM
RE: come lo strutturo un programma OO - da Zapetino - 28-11-2010, 06:21 PM
RE: come lo strutturo un programma OO - da steve - 28-11-2010, 07:50 PM
RE: come lo strutturo un programma OO - da Zapetino - 28-11-2010, 08:07 PM
RE: come lo strutturo un programma OO - da Zapetino - 28-11-2010, 09:50 PM

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
Question Programma free Zettamax 3 2,011 20-12-2011, 06:37 PM
Ultimo messaggio: Zettamax

Vai al forum:


Browsing: 1 Ospite(i)