IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Application C++ avec OpenGL


Sujet :

C++

  1. #21
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    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.

  2. #22
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Par défaut
    Bonjour,

    J'ai toujours le même problème que précédemment (
    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...
    )concernant l'affiche d'une "abeille" (un carré enfaite).

    Voici le code de ma classe main instanciant la grille

    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();
     
    }
    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
    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();
    }
    Merci de votre aide.

  3. #23
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 244
    Billets dans le blog
    174
    Par défaut
    Vous faites des
    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();
    Un peu n'importe ou
    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.

  4. #24
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Par défaut
    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 :
    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
    		}
    	}
    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
    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;
    J'espère que cela vous inspire plus que moi et je vous remercie de votre aide !

Discussions similaires

  1. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55
  2. Réponses: 2
    Dernier message: 26/05/2003, 19h42
  3. [Kylix] application console avec kylix 3 ?
    Par Hakim dans le forum EDI
    Réponses: 4
    Dernier message: 15/11/2002, 22h45
  4. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo