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 :

Scolling horizontal


Sujet :

SDL

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Scolling horizontal
    Bonjour à vous =)
    Alors voila, j'ai un souci avec le scrolling horizontal x)

    j'ai ces images:
    http://www.developpez.net/forums/att...1&d=1365403275
    http://www.developpez.net/forums/att...1&d=1365403444
    et elles sont en fait le fond de mon jeu:
    http://www.developpez.net/forums/att...1&d=1365403504

    J'ai cherché plusieurs exemples et tuto et je n'ai pas trouvé comment gérer le scrolling (de droite à gauche, un peu à la mario)
    En fait les images se décalent vers la gauche et se bloque sur le bord ._.

    Donc voila si vous aurez une idée ou autre je suis preneur :3
    Images attachées Images attachées    

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par satsuki Voir le message
    En fait les images se décalent vers la gauche et se bloque sur le bord ._.
    Si c'est le seul souci ,c'est parce que la SDL remet a zero les positions quand elle sont négatives du coup il faut faire un truk du genre pour contourner le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SDL_Rect p = position;
    SDL_BlitSurface(image,NULL,ecran, &p);

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Et ça sa correspond à quoi ?
    À la position de mon image ?

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Oui ça correspond a la position de ton image , relire mon poste , mais le problème vient comme je l'ai dis de la SDL qui remet a zero les positions que tu met en argument sur SDL_BlitSurface ce qui te permet grace a ces informations de régler ton souci.
    Enfin j'aurais pu écrire comme cela si ça te semble plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SDL_Rect p;
    p.x = position.x;
    p.y = position.y;
    l’intérêt et juste éviter que la fonction SDL_BlitSurface ne remet pas a zero.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    D'accord =) Je teste ça dans la soirée et je te tiens au courant^^
    Merci =)

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai essayé et ça ne fonctionne pas :/

    J'ai mes SDL_Rect position dans une structure:
    Code Structure position : 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
     
    typedef struct position position;
    struct position
    {
        SDL_Rect positionImageFondchateau;
        SDL_Rect positionHeros;
        SDL_Rect positionOmbre;
        SDL_Rect positionBarreMenu;
        SDL_Rect positionBarreVie;
        SDL_Rect positionArbreVoiture;
        SDL_Rect positionLampe;
        SDL_Rect positionLumiereLampe;
        SDL_Rect positionLampeMenu;
        SDL_Rect positionBuisson;
     
        int lampeAllume = 0;
    };

    j'ai ensuite une fonction pour "blitter" mes surfaces:
    Code Fonction blitterSurface : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void blitterSurface(images *images, position *position)
    {
        SDL_BlitSurface(images->imageFondChateau, NULL, images->ecran, &position->positionImageFondchateau);
        SDL_BlitSurface(images->ArbreVoiture, NULL, images->ecran, &position->positionArbreVoiture);
        SDL_BlitSurface(images->barreVie, NULL, images->ecran, &position->positionBarreVie);
        SDL_BlitSurface(images->Max, NULL, images->ecran, &position->positionHeros);
        SDL_BlitSurface(images->lampe, NULL, images->ecran, &position->positionLampe);
        SDL_BlitSurface(images->lumiereLampe, NULL, images->ecran, &position->positionLumiereLampe);
        SDL_BlitSurface(images->buisson, NULL, images->ecran, &position->positionBuisson);
        SDL_BlitSurface(images->ombre_Noire, NULL, images->ecran, &position->positionOmbre);
        SDL_BlitSurface(images->barreMenu, NULL, images->ecran, &position->positionBarreMenu);
        SDL_BlitSurface(images->lampeMenu, NULL, images->ecran, &position->positionLampeMenu);
        SDL_Flip(images->ecran);
    }

    Et je gère les déplacement comme ça (je sais que c'est pas la meilleure des solutions):
    Code déplacement : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    position->positionArbreVoiture.x--;
    position->positionImageFondchateau.x--;
    position->positionBuisson.x--;

    Donc pour blitter j'envoie bien l'adresse de la position de mon image :/

    Au final quand je compile ça me fait un truc comme ça quand je déplace:
    http://www.plixup.com/pics_core3/136...Sans_titre.png

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Normal quoi , bon je répétè x) , SDL_BlitSurface remet a zero les positions quand elle s sont négatives.

    Du coup si t'aurais pris mon exemple et implémenté sur ton code ça aurait donné un truk comme ça.

    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
    void blitterSurface(images *images, position *position)
    {
        SDL_Rect pos;
     
        pos = position->positionImageFondchateau;
        SDL_BlitSurface(images->imageFondChateau, NULL, images->ecran, &pos);
     
        pos = position->positionArbreVoiture;
        SDL_BlitSurface(images->ArbreVoiture, NULL, images->ecran, &position->positionArbreVoiture);
     
     
        SDL_BlitSurface(images->barreVie, NULL, images->ecran, &position->positionBarreVie);
        SDL_BlitSurface(images->Max, NULL, images->ecran, &position->positionHeros);
        SDL_BlitSurface(images->lampe, NULL, images->ecran, &position->positionLampe);
        SDL_BlitSurface(images->lumiereLampe, NULL, images->ecran, &position->positionLumiereLampe);
     
        pos = position->positionArbreVoiture;
        SDL_BlitSurface(images->buisson, NULL, images->ecran, &pos);
     
        SDL_BlitSurface(images->ombre_Noire, NULL, images->ecran, &position->positionOmbre);
        SDL_BlitSurface(images->barreMenu, NULL, images->ecran, &position->positionBarreMenu);
        SDL_BlitSurface(images->lampeMenu, NULL, images->ecran, &position->positionLampeMenu);
        SDL_Flip(images->ecran);
    }
    Ou alors d'un façon beaucoup plus simple enlever le pointeur , du coup les valeur seront pas modifié par SDL_BlitSurface


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void blitterSurface(images *images, position position)
    {
        //code
    }

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ahhhh *o* Ça y est merci ♥♥♥

Discussions similaires

  1. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53
  2. prob menu horizontal
    Par tinkye_winkye dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 25/01/2005, 11h19
  3. [TP]Déplacement horizontal de l'écran
    Par Lucien dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 24/12/2004, 17h55
  4. TableHeader horizontal
    Par yoyolejoueur dans le forum Composants
    Réponses: 3
    Dernier message: 01/12/2003, 21h51
  5. scrolling vertical et horizontal
    Par myriam dans le forum MFC
    Réponses: 2
    Dernier message: 24/01/2003, 17h06

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