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

SDL Discussion :

Lire un fichier d'entier avec SDL en C


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 42
    Par défaut Lire un fichier d'entier avec SDL en C
    Salut,
    je suis débutant dans l'utilisation de SDL, et j'ai un projet qui consiste à créer une interface graphique pour un jeu. Le jeu consiste à colorer des cases d'une matrice qui sont initialement de couleur blanches.
    Pour cela, j'ai à ma disposition des fichiers texte .txt qui contiennent les matrices d'entier. Mon problème c'est de pouvoir charger les fichier d'entier .txt (ouverture , lecture, affichage,...) avec SDL et afficher la matrice sur une fenêtre SDL pour travailler avec.

    J'aimerai bien que quelqu'un m'explique comment ça marche et comment procécer, sinon me donner des liens qui pourront m'aider à résoudre mon problème s'il vous plait.

    merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    La lecture de fichiers n'a rien à voir avec la SDL, je te conseille plutôt de créer un nouveau sujet sur le forum C.

    Pour ce qui est de l'affichage, qu'est-ce que tu as déjà fait ? Qu'est-ce qui te bloque exactement ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 42
    Par défaut
    Au fait la lecture du fichier je l'ai déjà fait en c, mais mon probleme est qu'il affiche la matrice sue le console et affiche à part ma fenêtre SDL.

    J'ai essayer d'affichier du texte (des chaines de caractères) mais j'y arrive pas pour les entier en SDL. voilà je pense que c'est plus claire maintenant

    merci

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par gsaly
    Au fait la lecture du fichier je l'ai déjà fait en c, mais mon probleme est qu'il affiche la matrice sue le console et affiche à part ma fenêtre SDL.

    J'ai essayer d'affichier du texte (des chaines de caractères) mais j'y arrive pas pour les entier en SDL. voilà je pense que c'est plus claire maintenant

    merci
    Alors je ne comprends pas ce que tu veux afficher... Des couleurs ou des entiers ?

    Si tu veux afficher du texte, tu peux utiliser SDL_ttf par exemple pour te créer une surface.

    Jc

  5. #5
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Après que tu as lu ta matrice, tu as un tableau cases[i][j], non?
    La formation du tableau dépend seulement du C et n'a rien à voir avec la SDL.

    Maintenant, imaginons que cases[i][j] contienne un tableau RGB qui correspond aux composantes de la couleur de la case:

    cases[i][j][0] contient la composante rouge
    cases[i][j][1] la verte
    cases[i][j][2] la bleue

    (composantes de 0 à 255, unsigned char)

    Voilà le code pour afficher les cases:

    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
    /*Le tableau cases est du type:
     * unsigned char cases[NB_RANGEES][NB_COLONNES][3]
     */
     
    Uint32 couleur_case;
    SDL_Rect pos;
    int i, j;
     
    for (i=0; i < NB_RANGEES; i++)
    {
        for (j=0; j < NB_COLONNES; j++)
        {
         //pos de la case
         pos.x = i * LARGEUR;
         pos.y = j * HAUTEUR;
         pos.w = LARGEUR;
         pos.h = HAUTEUR;
     
         //Couleur en fonction de la valeur de case[i][j], screen est l'écran
         couleur_case = SDL_MapRGB(screen->format, cases[i][j][0], cases[i][j][1], cases[i][j][2]);
     
         //Affichage de la case
         SDL_FillRect(screen, &pos, couleur_case);
         }
    }
    Bien sûr la hauteur et la largeur de pos peuvent être définies en dehors de la boucle car elles ne changent pas. De plus, libre à toi d'utiliser d'autre moyen de stockage pour la couleur de la case.

    Coyotte507

    edit: Maintenant le code est correct

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 42
    Par défaut
    salut,
    Je dois afficher les entiers qui sont dans la matrice mais aussi il va falloir que les cases soient de couleur blanche. Puisque je dois faire de telle sorte que quand le joueur clique sur une case de la matrice, que celle ci change de couleur.
    Mais mon problème actuel c'est d'afficher les entiers de la matrice.

    merci

  7. #7
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par gsaly
    salut,
    Je dois afficher les entiers qui sont dans la matrice mais aussi il va falloir que les cases soient de couleur blanche. Puisque je dois faire de telle sorte que quand le joueur clique sur une case de la matrice, que celle ci change de couleur.
    Mais mon problème actuel c'est d'afficher les entiers de la matrice.

    merci
    D'accord, alors tu peux regarder ici http://jeux.developpez.com/sources/sdl/?page=texte pour des idées de comment utiliser SDL_ttf pour afficher ton texte.

    Jc

Discussions similaires

  1. Lire les fichiers dbase (.dbf) avec PHP 5.3
    Par renardchan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/05/2013, 11h58
  2. Lire un fichier .txt (écrit avec fortran)
    Par annso8775 dans le forum MATLAB
    Réponses: 3
    Dernier message: 27/11/2012, 17h47
  3. Lire un fichier PDF (text) avec Matlab
    Par schecter dans le forum MATLAB
    Réponses: 3
    Dernier message: 08/03/2010, 06h33
  4. Lire un fichier CSV envoyé avec une requête POST
    Par Marm B dans le forum Langage
    Réponses: 6
    Dernier message: 26/08/2009, 13h31
  5. Réponses: 1
    Dernier message: 02/05/2007, 09h22

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