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

GLUT Discussion :

Portée variable - variable globale


Sujet :

GLUT

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 14
    Par défaut Portée variable - variable globale
    Bonjour,

    Je développe actuellement pour ma fin d'année, un projet jeu vidéo en C++

    J'ai déja demadner de l'aide sur le forum,je m'excuse d'avance de ne pas avoir donné de mes nouvelles,et remercie la personne qui m'avait répondu

    Le développement se passe plutot bien,j'ai un début d'animation,les combats ont l'air de marché (du moins au nveau console) et niveau délai cela avance lentemetn mais surement

    Mais je commence à avoir un problème qui sera genant pour mon prof,j'utilise beaucoups de variable globals. Ce sera très mal vu par le prof mais je ne vois pas comment je pourrais m'en passer.. voici quelques lignes de mon programme où je ne vois pas comment m'en passer

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    unsigned AshFace1,AshFace2,AshFace3,AshDos1,AshDos2,AshDos3,AshGauche1,AshGauche2,AshGauche3,AshDroite1,AshDroite2,AshDroite3;
    unsigned AshDebout,AshVictoire,AshSort1,AshSort2,AshDegat,AshMort;
    unsigned MaronaDebout,MaronaVictoire,MaronaSort1,MaronaSort2,MaronaSort3,MaronaDegat,MaronaMort;
    unsigned WalnutDebout,WalnutVictoire,WalnutSort1,WalnutSort2,WalnutSort3,WalnutDegat,WalnutMort;
    unsigned WraithDebout,WraithAttaque1,WraithAttaque2,WraithAttaque3,WraithDegat;
    unsigned DragonDebout,DragonAttaque1,DragonAttaque2,DragonAttaque3,DragonDegat;
    unsigned AshPortrait,MaronaPortrait,WalnutPortrait;
    unsigned SireneDebout,SireneSort1,SireneSort2,SireneDegat;
     
    void init(void){
     
     
      AUX_RGBImageRec *texture[60];
     
        glClear(GL_COLOR_BUFFER_BIT);
        glClearColor(1,1,1,0);
        //on active le test de profondeur
        glDisable(GL_DEPTH_TEST);
        //on actives les texutres
        glEnable(GL_TEXTURE_2D);
        //On charge les textures a partir de leurs emplacements
        texture[0] = auxDIBImageLoad("C:/Users/nico/Desktop/Personnage/Ash_Face.bmp");
        glGenTextures (1, &AshFace1);
        glBindTexture (GL_TEXTURE_2D, AshFace1);
        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
        glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
        glTexImage2D(GL_TEXTURE_2D, 0, 3, texture[0]->sizeX, texture[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, texture[0]->data);
     
        texture[1] = auxDIBImageLoad("C:/Users/nico/Desktop/Personnage/Ash_Face2.bmp");
        glGenTextures (2, &AshFace2);
        glBindTexture (GL_TEXTURE_2D, AshFace2);
        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
        glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
        glTexImage2D(GL_TEXTURE_2D, 0, 3, texture[1]->sizeX, texture[1]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, texture[1]->data);
     
    //ainsi de suite
     
    }
     
    void display(){
     
     glEnable(GL_TEXTURE_2D);
            glBindTexture (GL_TEXTURE_2D,MaronaPortrait);
            glColor3d(1,1,1);
            glTranslated(4,0,0);
            glBegin(GL_QUADS);
             glTexCoord2i(1,0);glVertex2i(-1,-1);
             glTexCoord2i(1,1);glVertex2i(-1,1);
             glTexCoord2i(0,1);glVertex2i(1,1);
             glTexCoord2i(0,0);glVertex2i(1,-1);
            glEnd();
            glTranslated(0,4,0);
            glBindTexture (GL_TEXTURE_2D,AshPortrait);
            glBegin(GL_QUADS);
             glTexCoord2i(1,0);glVertex2i(-1,-1);
             glTexCoord2i(1,1);glVertex2i(-1,1);
             glTexCoord2i(0,1);glVertex2i(1,1);
             glTexCoord2i(0,0);glVertex2i(1,-1);
            glEnd();
     
    }
    Bien sur je ne met pas tout mon programme mais c'est pour representer le probleme..Je ne peux pas déclarer unsigned nomdelatexture dans init car il ne sera pas à la porté de display..

    Meme chose que pour quand je crée la classe des personnages

    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
     int main(){
    Soigneur M(2,"Marona",350,mpmaxMagicien[0],10,5,15,17,20,1,0,hpmaxMagicien,mpmaxMagicien,plafondexp);
        Guerrier A(1,"Ash",0,mpmaxMagicien[0],10,5,15,19,20,1,0,hpmaxMagicien,mpmaxMagicien,plafondexp);
        Magicien W(3,"Walnut",350,mpmaxMagicien[0],10,5,18,15,20,1,0,hpmaxMagicien,mpmaxMagicien,plafondexp);
        Monstre D(4,"Dragon",0,mpmaxMonstre[0],5,2,8,8,2,1,0,hpmaxMonstre,mpmaxMonstre,plafondexp,100);
        Monstre S(5,"Sirene",0,50,5,2,8,10,2,1,0,hpmaxMonstre,mpmaxMonstre,plafondexp,10);
        Combat c(1); 
    }
     
    void subdisplay(){
     
      sprintf (label, " MARONA  %2d /100 ",M.getHP());
      glRasterPos2f (0.40F, 0.50F);
      drawStringBig (label);
     
      sprintf (label, " HP :  100 /100 ");
      glRasterPos2f (0.60F, 0.50F);
      drawStringBig (label);
     
    }
    l'objet m n'étant que déclaré dans le main impossible de l'appeller ailleurs,il n'est également pas possible de le passer en paramètre..

    Serai -je obligé de tout mettre en variable globale ou il y a une meilleure solution?


    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 528
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 528
    Par défaut
    Citation Envoyé par Nicolas123 Voir le message
    Mais je commence à avoir un problème qui sera genant pour mon prof,j'utilise beaucoups de variable globals. Ce sera très mal vu par le prof mais je ne vois pas comment je pourrais m'en passer.. voici quelques lignes de mon programme où je ne vois pas comment m'en passer
    1-j'arrive pas à comprendre comment on peut faire autant de fautes de français

    2- tu fais de la programmation Open GL tu ne maitrises même pas les bases de la POO.
    Donc un bon conseil trouve un tuto de C++ et programmation objet ou un bon livre ( par exemple Teach Yourself c++ In 21 days que l'on trouve en téléchargement libre en PDF )
    Pour éviter les variables globales il faut utiliser des classes d'objet

    3-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Monstre D(4,"Dragon",0,mpmaxMonstre[0],5,2,8,8,2,1,0,hpmaxMonstre,mpmaxMonstre,plafondexp,100);
    Evite ce genre de déclaration à rallonge cela favorise les erreurs.
    Il faut utiliser des fichiers binaires ou bien XML pour les données

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 14
    Par défaut
    Désolé de t'avoir aveuglé

Discussions similaires

  1. Portée de variable globale
    Par artotal dans le forum jQuery
    Réponses: 10
    Dernier message: 11/03/2014, 01h40
  2. la portée des variables globales en XSLT
    Par onh890 dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 01/06/2012, 17h57
  3. [XL-2010] Portée des variables: variables locales ou public; sub, private sub et Option Explicit
    Par RicardoBxl dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2011, 20h34
  4. Problème de portée de variable globale
    Par draudrau dans le forum C
    Réponses: 16
    Dernier message: 06/11/2007, 09h27
  5. portée des variables globales dans un fichier js
    Par crakazoid dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2006, 16h49

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