Salve a tutti.
ho un problema di programmazione di base che non riesco a risolvere;
sto programmando con le glut un giochetto OpenGl di astronavi.Per diversi calcoli da fare su posizione e movimenti devo sfruttare delle funzioni per reciclare codice.Il problema sta nel fatto che per ogni astronave esiste un oggetto che memorizza la posizione(scritto in c++) mentre il resto del codice e' scritto in c tradizionale per la gestione dei appunto dei movimenti.
pensate ad una situazione di questo tipo:
codice:
Astronave astro1(x,y,z);
//creata un oggetto di tipo Astronave dalla classe Astronave
//con coordinate x y e z e che si chiama astro1
modificapos (traiettoriax, traiettoriay, traiettoriaz)
{
...
//questo e' il metodo che modifica la posizione
astro1.modpos(x,y,z);
...
}
Dentro modificapos ci sara' una chiamata ad una funzione specifica scritta in cpp che andra' a variare gli attributi di astro1.Chiaramente sara' una funzione tipo astro1.modpos(x,y,z);
Il problema e' che la funzione che modifica la posizione mi serve per riutilizzare lo stesso codice con diverse astronavi(astro1, astro2, astro3 etc).Solo che non riesco a sostituire astro1.modpos(x,y,z) con una chiamata a funzione astratta.
Come posso generalizzare la chiamata a funzione astro1.modpos(x,y,z) e riutilizzare il codice per diverse astronavi istanziate?
E' eventualmente possibile istanziare un oggetto generico che puo' assumere valori diversi per ogni chiamata che faccio di modificapos ?
Grazie per l'attenzione.
PS:e' necessario mantenere la stessa struttura dei linguaggi,
ovvero devo avere gli oggetti istanziati con il c++ ed il resto del codice in c tradizionale.