Bonjour, j'aimerais pouvoir faire sur mon mini-jeux, un scrolling en SDL. Mais, je ne sais pas comment faire.
Pouvez me donnez la marche à suivre ?

Sinon.... (autant en profiter)

J'ai quelque soucis avec mon jeux. Quand je déplace Mario, il se déplace lentement. Pourtant, j'ai bien mis le SDL_EnableKeyRepeat à (10,10).... comme sur les tutoriels, mais il se déplace comme un vieux lol


Code c : 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
 
#include "constant.h"
 
 
int main(int argc, char *argv[])
{ 
	SDL_Surface *ecran = NULL, *image_de_fond = NULL, *Sol = NULL;
    SDL_Surface *mario[4] = {NULL}; // 4 surfaces pour chacune des directions de Mario
    SDL_Surface *marioActuel = NULL;
   SDL_Rect positionFond, positionMario, positionSol;
 
  /*Pour le fond du jeu */
 
positionFond.x = 0;
positionFond.y = 0;
 
 /* Position de Mario sur la carte */
 
positionMario.x = 1;
positionMario.y = 410;
 
/* Position du sol sur la carte*/
 
positionSol.x = 1;
positionSol.y = 442;
 
SDL_Event event;
int continuer = 1;
 
    SDL_Init(SDL_INIT_VIDEO);
 
    ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
    SDL_WM_SetCaption("Deplacer Mario sur un ecran blanc !", NULL);
 
    /* Chargement des images */
    mario[BAS] = IMG_Load("mario_bas.gif");
    mario[GAUCHE] = IMG_Load("mario_gauche.gif");
    mario[HAUT] = IMG_Load("mario_haut.gif");
    mario[DROITE] = IMG_Load("mario_droite.gif");
    marioActuel = mario[DROITE]; // Mario sera dirigé vers la droite au départ
 
SDL_EnableKeyRepeat(10, 10);
 
    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
                break;
            case SDL_KEYDOWN:
                switch(event.key.keysym.sym)
                {
                    case SDLK_UP: // Flèche haut (sauter)
                        marioActuel = mario[HAUT];
 
                        break;
                    case SDLK_RIGHT: // Flèche droite (avancer vers la droite)
                        marioActuel = mario[DROITE];
                        positionMario.x++;
                        break;
                    case SDLK_LEFT: // Flèche gauche (avancer vers la gauche)
                        marioActuel = mario[GAUCHE];
                        positionMario.x--;
                        break;
                }
                break;
        }
 
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 128, 128, 128)); /* On efface l'écran */
 
         /* Mise en place du fond */
   image_de_fond = IMG_Load("fond.png");
   SDL_BlitSurface(image_de_fond, NULL, ecran, &positionFond);
 
        SDL_BlitSurface(marioActuel, NULL, ecran, &positionMario); /* On place Mario à sa nouvelle position */
 
        Sol = IMG_Load("mur_sol.png");
    SDL_BlitSurface(Sol, NULL, ecran, &positionSol);
 
        SDL_Flip(ecran); /* On met à jour l'affichage */
    }
 
    SDL_FreeSurface(marioActuel);
    SDL_FreeSurface(mario[HAUT]);
    SDL_FreeSurface(mario[BAS]);
    SDL_FreeSurface(mario[DROITE]);
    SDL_FreeSurface(mario[GAUCHE]);
    SDL_Quit();
}


Est aussi quand, on reste appuyé sur la touche, Mario s'arrête puis repars, s'arrête puis repars,etc. Pouvez m'aider à corriger ces erreurs ?
Je pense que c'est un problème de mémoire, mais comment y remédier ?

Merci.