Partage
  • Partager sur Facebook
  • Partager sur Twitter

Scrolling SDL 2

    11 mai 2020 à 13:36:35

    Bonjour,

    Comme l'indique le sujet, je souhaite réaliser un défilement d'images sur une tilemap en SDL2.

    J'ai réussi à faire ça mais j'ai un petit problème de visuel :

    Par exemple, si le fond se déplace dans un sens, les images doivent se déplacer dans le sens inverse.

    J'ai réussi à faire ça aussi, le problème c'est que lorsque le fond et les images se déplacent, on voit un décalage entre les images et leurs positions.

    Si le défilement d'image s'arrête, les images sont remises correctement.

    Voici un morceau de code :

    1
    int speed1(5);
    1
    2
    if(nb_largeur*largeur-CADRE2_1.w>SCROLLING.x)
    {
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SCROLLING.x=SCROLLING.x+speed1;
    for(int i=0;i<nb_image_tilemap;i++)
    {
    if(images2[i].movements==1)
    {
    images2[i].rect.x=images2[i].rect.x-speed1;
    }
    }
    }

    SCROLLING est le SDL_Rect qui s'occupe du défilement d'images, nb_largeur est le nombre de tuiles en largeur de la tilemap, largeur est la largeur des tuiles, l'attribut movements des images me permet de décider quelles images sont influencées par le scrolling.
    Speed est la vitesse du scrolling et des images en déplacement.

    Revenons au décalage : lors du défilement, on voit clairement un décalage de 5 pixels ici (selon la valeur de speed), ce décalage disparaît lorsque le défilement n'a pas/plus lieu.

    Des idées ? Pourquoi y-a t'il un décalage ?

    Merci d'avance.

    NB : J'utilise le programme de tilemap de ce site.

    EDIT : J'utilise le clic de la souris pour procéder au scrolling.

    -
    Edité par ReunanBeauvois 11 mai 2020 à 14:01:15

    • Partager sur Facebook
    • Partager sur Twitter

    Scrolling SDL 2

    × 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