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

Autres éditeurs Discussion :

un plateau en SDL...


Sujet :

Autres éditeurs

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut un plateau en SDL...
    Bonjour à tous,

    toujours débutant en SDL, j'ai encore besoin de votre aide!

    je veux faire un plateau de jeu. Pour cela, j'ai un tableau de pointeur de SDL_Surface à une dimension. Mon tableau est initialisé avec la bonne image.

    le problème, c'est que lorsque je veux l'afficher, les cases s'affichent toujours au même endroit... je dois certainement mal m'y prendre.
    mais voici mon code d'affichage de mon plateau ce sera plus parlant je pense :

    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
     
    int		i;
    	int		x;
    	int		y;
     
    	for (i = 0, x = 0, y = 0; i < 1; i++)
    	{
    		if (i != 0 && i % 10 == 0)
    		{
    			x = 0;
    			y += plateau[i - 1]->h;
    		}
     
    		if (plateau[i]->format->palette && screen->format->palette) 
    		{
    			SDL_SetColors(screen, plateau[i]->format->palette->colors, 0,
                      plateau[i]->format->palette->ncolors);
    		}
     
    		if(SDL_BlitSurface(plateau[i], NULL, screen, NULL) < 0)
    			fprintf(stderr, "BlitSurface error: %s\n", SDL_GetError());
     
    		SDL_UpdateRect(screen, x, y, plateau[i]->w, plateau[i]->h);
    		x += plateau[i]->w;
    	}
    sachant que x, y sont les coordonnées ou je veux afficher, et i mon indice de tableau...

    merci d'avance !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    oups, excusez moi il y a une erreur dans le code que je vous ai donné :

    l'indice i ne va pas jusqu'à 1, mais bien jusqu'à la taille de mon tableau

    je vous redonne le code donc :
    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
     
    int      i; 
       int      x; 
       int      y; 
     
       for (i = 0, x = 0, y = 0; i < NB_CASE; i++) 
       { 
          if (i != 0 && i % 10 == 0) 
          { 
             x = 0; 
             y += plateau[i - 1]->h; 
          } 
     
          if (plateau[i]->format->palette && screen->format->palette) 
          { 
             SDL_SetColors(screen, plateau[i]->format->palette->colors, 0, 
                      plateau[i]->format->palette->ncolors); 
          } 
     
          if(SDL_BlitSurface(plateau[i], NULL, screen, NULL) < 0) 
             fprintf(stderr, "BlitSurface error: %s\n", SDL_GetError()); 
     
          SDL_UpdateRect(screen, x, y, plateau[i]->w, plateau[i]->h); 
          x += plateau[i]->w; 
       }
    désolé.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut
    Salut

    Jai du mal a voir dou ca pourrait venir

    Mais du pourrez essayer de faire cest test:
    NBCASE est bien > 0 ?
    affiche les valeurs de x ete y a chaque tour avant laffichage graphique et regarde si elle sont bien modifier.

    Petetre quand realite tu naffiche qune seule image et que les autres ne sont pas afficher (sortie de boucle, ou en dehors de la fenetre)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    j'ai déjà essayé d'afficher les coordonnées, et pourtant, elles évoluent bien, c'est ça que je ne comprends pas.

    NB_CASE = 100.

    franchement, je ne comprends pas.

    Quand j'essaie de faire afficher une seule image (je ne fais pas évoluer mon i, comme dans mon premier post), je n'arrive même pas à l'afficher où je veux. C'est-à-dire que mon image s'affiche systématiquement en haut à droite de mon écran (x = 0 et y = 0), même quand je change mes valeur de x et y.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut
    Ok
    dsl mais je pe pas taider plus
    jessaierai de regarder dans un bout de code(mais pas avant une semaine:je suis pas chez moi pr linstant)

    mais sinon tu devrai dl un exemple avec son Source(yen a plein sur le net)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    C'est tout à fait normal que ta surface ce retrouve en haut de ton écran.
    Tu ne lui a pas préciser où il devait se trouver sur ton écran
    Regarde du côté des SDL_Rect

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    Ah d'accord ! je vais me renseigner là dessus alors !
    merci !

Discussions similaires

  1. SDL+opengl+drivers nvidia 56.72 et plus
    Par ttf dans le forum OpenGL
    Réponses: 2
    Dernier message: 22/05/2004, 14h28
  2. Programmation graphique ... SDL ??
    Par Franck.H dans le forum C
    Réponses: 9
    Dernier message: 29/04/2004, 20h51
  3. [SDL] manipulation d'image
    Par zdra dans le forum OpenGL
    Réponses: 4
    Dernier message: 28/02/2004, 16h56
  4. [Debutant] Sdl & OpenGl link ne marche pas
    Par Riko dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/02/2004, 16h13
  5. [opengl et sdl]
    Par Gonath dans le forum OpenGL
    Réponses: 6
    Dernier message: 08/12/2003, 09h49

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