bon pour te faire une idee, il te faut en gros une bride.
admettons que sur le 1er plan tu effectue un deplacement de 30 pixel/secondes.
si tu ne met pas de bride, si une machine est lente elle va mettre plus de une seconde pour faire 30pixel et inversement pour une machine puissante.
l'idee est donc de guetter les evenement de deplacement, incrementer les coordonnee de deplacement et afficher. Il te faut donc placer un timer, si tu mets sur les evenements ca sert a rien, si tu le met sur l'affichage tu bride ce dernier ca sert a rien et c'est meme mal car tu freeze pendant chaque periode, il te faut donc mettre un timer autour des incrementations
{
int left;
int go_left;
key touche;
int time1, time2;
time1 = heure actuelle en milliseconde;
time2 = time1 += 1000;
left = go_left = 0;
while (1) // boucle infini
{
time1 = heure actuelle en milliseconde; // permet de mettre a jour le temps a chaque boucle
affichage_level(go_left);
recuperation_des_evenements();
if (time1 > time2) // si le temps actuelle a atteind une seconde
{
time2 += 1000; // on remet la deuxieme variable a une seconde dans le futur
if (left == 1)
gol_left += 30;
}
switch (touche.type)
{
case KEYUP: // touche relachée
if (touche gauche)
left = 0;
break;
case KEYDOWN: // touche enfoncée
if (touche gauche)
left = 1;
break;
}
}
return ();
}
voila l'ordre d'idee, tres facil a mettre en place avec la SDL. le jeu s'adapte automatiquement et le plus simplement possible. j'affiche tout le temps ce qui me permet d eviter des defautt d affichage (si je passe une fenetre par dessus le jeu, il reaffichera l image sinon on obtiens la trace de la fenetre dans le jeu.) seul esl deplacement (go_left) sont affecter defacon reguliere et donc quelque soit la puissance de la machine