Je vois, c´est a peu pres comme ça que j´y gere :
regarde :
- include " fgl.h"
FGL* F;
void display(int b)
{
if ( F->Key(27))
F->Stop();
F->LookAt();
F->UpdateSprites();
F->ShowSprites();
}
int main(int argc, char **argv)
{
F=new FGL(display,640,480,32,0);
F->ImLoad("t.dat");
F->NewSprite(0,new
Sprite2D(F->SelectBank(0),Vector(100.0,100.0,0.0),
0));
F->SetEnreg(0,new ETrans(Vector(1.0,0.0,0.0),10));
F->Roule();
return 0;
}
Commentaires :
FGL est mon projet, ce programme marche déja : tu commences par lire le main :
1er ligne :
F=new FGL(display,640,480,32,0);
--> initialise a 640*480, 32 bits / couleur, on peut monter a 1600*1200 si on veut
le 0 pour dire : pas en plein écran ( mais sinon, plein écran), dis en outre que la boucle principale est " display", voir apres.
F->ImLoad : charge les sprites
F->NewSprite : crée le sprite 1. Le sprite 1 sera un sprite 2D : tout est prévu pour gérer dans l´avenir des objets 3D en tant que sprite.
F->SetEnreg : défini au sprite 1 un mouvement :
ici ETrans = mouvement de translation, je lui dit de bouger de +1 pixel en x toute les 10/1000e de seconde : C donc calé sur le temps.
F->Roule : lance la boucle principale ( display ici)
dans cette boucle :
F->Key(27) --> si appuie sur ESC, alors stop
F->LookAt() --> met en place la vue
F->UpdateSprites() --> fait avancer les sprites en fonction de leurs mouvement préenregistrés.
F->ShowSprites(); --> Affiche les sprites.
Mon but est de faire un truc complexe, extensible, et surtout qui ne restreint pas le OpenGL qu´il y a derriere.
Mon but est d´utiliser le polymorphisme de fonctions pour ajouter des parametres aux fonctions existantes pour qu´elle se comportent différemment.
Autre but : le polymorphisme de classe implicite : quand tu crée un sprite, ça peut etre un sprite2D, mais plus tard ce sera d´autres types de sprites....
Le moteur n´en est qu´au début, mais les resultats sont la. J´ai déja implémenté le programme qui crée les fichiers comme " t.dat", c´est un programme qui scanne un BMP que tu as fait, et trouve les sprites dessus, avec gestion de points chauds et points d´action.
C´est pour cela que je cherche des idées supplémentaire pour que FGL aie une bonne ergonomie a la sortie.