Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C/OGL/SDL]Multifichier

Redeclaration

    19 juin 2006 à 11:14:14

    Salut à tous :)
    Bon, je me remet plus sérieusement au developpement, mais dès le début, j'ai un problème, mais je ne comprend vraiment pas d'où il vient:


    main.c
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <gl/gl.h>
    #include <gl/glu.h>
    #include "header.h"


    Ecran screen;
       
    int main (int argc, char *argv[])
    {
        screen.hauteur=600;
        screen.largeur=800;
        screen.profondeur=32;
       
        if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)
        {
            fprintf(stderr, "An error has occured while loading the SDL lib: %s\n", SDL_GetError());
            exit(EXIT_FAILURE);
            return 0;
        }
       
        if (SDL_SetVideoMode(screen.largeur, screen.hauteur, screen.profondeur, SDL_OPENGL)==NULL)
        {
            fprintf(stderr, "An error has occured while initializing the video/render mode: %s\n", SDL_GetError());
            exit(EXIT_FAILURE);
            return 0;
        }
       
        SDL_WM_SetCaption("A testProgramm", NULL);
       
        intro();
       
    }



    evenements_clavier.c
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <gl/gl.h>
    #include <gl/glu.h>
    #include "header.h"




    void UpdateEvents()
    {
           
            while(SDL_PollEvent(&event))
            {
                    switch (event.type)
                    {
                    case SDL_KEYDOWN:
                            key[event.key.keysym.sym]=1;
                            break;
                    case SDL_KEYUP:
                            key[event.key.keysym.sym]=0;
                            break;
                    case SDL_MOUSEMOTION:
                            xsouris=event.motion.x;
                            ysouris=event.motion.y;
                            xrelsouris=event.motion.xrel;
                            yrelsouris=event.motion.yrel;
                            break;
                    case SDL_MOUSEBUTTONDOWN:
                            boutons[event.button.button-1]=1;
                            break;
                    case SDL_MOUSEBUTTONUP:
                            boutons[event.button.button-1]=0;
                            break;
                    }
            }
    }



    header.h
    #ifndef DEF_HEADER
    #define DEF_HEADER



    #define TRUE 1
    #define FALSE 0

    SDL_Event event;
    char key[400];
    int xsouris=0,xrelsouris=0,yrelsouris=0,ysouris=0;
    char boutons[3]={0,0,0};

    typedef struct Ecran Ecran;
    struct Ecran
    {
           int largeur;
           int hauteur;
           int profondeur;
    };

    void pause();
    int intro();
    void UpdateEvents();

    #endif


    intro.c
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <gl/gl.h>
    #include <gl/glu.h>
    #include "header.h"

    int intro()
    {
       int continuer=TRUE;
       glClearColor(0.0, 0.0, 0.0, 0.0);
       return 0;
    } 


    quit.c
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <gl/gl.h>
    #include <gl/glu.h>
    #include "header.h"

    int quit()
    {
         SDL_Quit();
         return 0;   
    }



    Bon, le problème, c'est qu'il me met que je définie plusieurs fois les variables xsouris,xrelsouris,yrelsouris,ysouris et boutons..

    Je comprends vraiment pas pourquoi..

    Merci de votre aide :)
    • Partager sur Facebook
    • Partager sur Twitter
      19 juin 2006 à 11:22:26

      est-ce que tu pourrais nous filer l'erreur exacte (en anglais) que te renvoie le compilo? Vraisemblablement, l'erreur telle que tu la formule n'existe pas dans ton code(il me semble que ce type d'erreur que tu déclare plusieurs fois la variable, en écrivant par exemple plusieurs fois int xsouris)...
      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2006 à 11:38:40

        en fait ça fout quoi le Ecran screen ??? c pas plutot un truc du genre SDL_Surface qu'il ffaut faire ?? parceque si la sdl fait des trucs en français .....
        • Partager sur Facebook
        • Partager sur Twitter
          19 juin 2006 à 11:48:13

          multiple definition of `boutons' first defined here (mais ca va nulpart)

          Ecran scrren n'a rien à voir avec la sdl...

          Je n'utilise la SDL que pour le fenetrage, le son et les evenements, elle ne me sert à rien pour les surfaces (sauf les textures), donc pas du tout besoin de screen et tout ça...

          De toute façon, ton pointeur vers ta surface de l'ecran, tu l'appel comme tu veux.

          Cette structure me sert à conserver les infos de la fenetre qui seront récupérés d'un fichier de configuration...
          • Partager sur Facebook
          • Partager sur Twitter

          [C/OGL/SDL]Multifichier

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown