Oui bien sur. J'utilise struct par habitude mais il faut évidement gérer les private/protected/public au cas par cas, respecter la sémantique valeur/entité, le respect des principes de POO, etc.
Version imprimable
Oui bien sur. J'utilise struct par habitude mais il faut évidement gérer les private/protected/public au cas par cas, respecter la sémantique valeur/entité, le respect des principes de POO, etc.
Bonjour,
J'ai toujours le même problème que précédemment ()concernant l'affiche d'une "abeille" (un carré enfaite).Citation:
L'abeille n'apparait pas dans ma fenêtre. J'ai bien essaye d'enlever la définition de la Matrix, ces fonctions pour être exacte : glMatrixMode, glLoadIdentity, glTranslatef, glRotatef, glFlush et glutSwapBuffers; mais le résultat est un triangle qui est "déformé" par rapport à ce que je dessine...
Voici le code de ma classe main instanciant la grille
Et ensuite le code de ma classe myBee instanciant l'abeilleCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 void DisplayScene(void) { //clear the current window glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //make changes to the modelview matrix glMatrixMode(GL_MODELVIEW); //initialise the modelview matrix to the identity matrix glLoadIdentity(); glTranslatef(0.0,0.0,-50.0); glRotatef(90.0,1.0,0.0,0.0); //draw things here if(mymap != NULL) mymap->draw(); myFirstBee = new MyBee(0,0); //flush what we've drawn to the buffer glFlush(); //swap the back buffer with the front buffer glutSwapBuffers(); }
Merci de votre aide.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 void const MyBee::displayBee() { //initialise the modelview matrix to the identity matrix glLoadIdentity(); //draw a bee entity at the right position glBegin(GL_QUADS); glColor3f(1.0,1.0,1.0); glVertex2i(0,0); glVertex2i(5,0); glVertex2i(0,5); glVertex2i(5,5); glEnd(); //flush what we've drawn to the buffer glFlush(); //swap the back buffer with the front buffer glutSwapBuffers(); }
Vous faites des
Un peu n'importe ou :aie:Code:
1
2
3
4 //flush what we've drawn to the buffer glFlush(); //swap the back buffer with the front buffer glutSwapBuffers();
Ce code ne doit apparaitre qu'une fois et uniquement lorsque vous avez tout dessiné (et non pour chaque abeille).
De plus, je ne comprends pas pourquoi vous créer une abeille dans le displayScene(). Pour moi, toutes les abeilles devraient être créées dès le début de l'application (et qu'une seule fois). (Et puis cela forme une fuite de mémoire)
Du coup, je ne suis pas sur que vous appelez la fonction d'affichage :)
Ce que j'aimerais à présent, c'est crée un Node de mon graph AStar pour chaque case de ma grille.
Voilà le code qui me permet de créer ma grille :
Et voici comment marche mon code AStar :Code:
1
2
3
4
5
6
7
8
9
10
11
12 this->xTiles = _xTiles; this->yTiles = _yTiles; this->tileSize = tileSize; for (int y = 0; y < _yTiles; y++) { for (int x = 0; x < _xTiles; x++) { t = new MyTile; //allouer memoire pour ma case this->tiles.push_back(t); //ajouter au tableau de cases } }
J'espère que cela vous inspire plus que moi :? et je vous remercie de votre aide !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Graph *graph = new Graph(); GraphNode *gnA = graph->addNode("A", 0.0, 0.0); GraphNode *gnB = graph->addNode("B", 0.0, 0.0); GraphNode *gnC = graph->addNode("C", 0.0, 0.0); GraphNode *gnD = graph->addNode("D", 0.0, 0.0); GraphNode *gnE = graph->addNode("E", 0.0, 0.0); GraphNode *gnF = graph->addNode("F", 0.0, 0.0); GraphNode *gnG = graph->addNode("G", 0.0, 0.0); GraphConnection *gcA1 = graph->addConnection(1.3, gnA, gnB); GraphConnection *gcA2 = graph->addConnection(1.1, gnA, gnC); GraphConnection *gcB1 = graph->addConnection(1.5, gnB, gnD); GraphConnection *gcB2 = graph->addConnection(1.7, gnB, gnE); GraphConnection *gcC1 = graph->addConnection(1.5, gnC, gnE); GraphConnection *gcC2 = graph->addConnection(1.6, gnC, gnF); GraphConnection *gcE1 = graph->addConnection(1.5, gnE, gnG); //create the AStarSearch class AStarSearch *as = new AStarSearch(); //search the graph as->doSearch(gnA, gnG); as->doSearch(gnA, gnE); //delete everything delete as; delete graph;