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.
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).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'abeille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;et je vous remercie de votre aide !
Partager