[SDL]Problème de Scrolling

Problème de Scrolling [SDL] - C - Programmation

Marsh Posté le 10-11-2007 à 16:30:52    

Bonjour je fais un petit RPG et j'ai un problème avec le scrolling map.
 
En effet, ma carte se déplace bien mais de manière sacadé...
 
Je vous explique brièvement le schemas de mon jeu
 
Chargement de la map
---------------------
 
J'ai un fichier .txt que je viens lire...
Je récupère la taille de ma map Width et Height.
 je place chaque élément dans un tableau à deux dimensions
Mon tableau est plsu grand que la taille de mon ecran... d'où la nécessité de faire du scrolling
 
Deplacement du joueur
---------------------
 
Je déplace mon joueur :
 
         

  • Vers la droite : ->  

               if (this.offSetX  < this.tile_width * 32 - 800)   //Si la partie parcourus par le perso est inférieure à celle à parcourir
                {
                    this.offSetX ++;    //On bouge la map
                }
                else
                {
                    if(this.myPerso.getSprite().X + 32 < 800)  //Sinon on bouge le perso à l'écran tant qu'il n'est pas sortie de l'écran
                        this.myPerso.getSprite().X++;
                }
 
                if ((this.offSetX - (this.tile_width * 32 - 800) < 0)&&(this.myPerso.getSprite().X > 400))    
//Si Il y a encore une partie de la map à parcourir et si nous sommes au delà du milieu de l'écran, on centre la vue du joueur

                    this.myPerso.getSprite().X = 400;
 
 
 
 
Dessin de la map
-----------------
 
Je parcours mon tableau :
 
 
            int t = this.offsetY / 32;  //Récupération du Y de départ
            int z;
 
 
            for (int i = this.offSetX / 32 ; i < myScreen.Height / 32 ; i++)  //On redessine chaque tile à l'écran
            {
                z = this.offSetX / 32;
                for (int j = this.offSetX / 32; j <= myScreen.Width / 32; j++)
                {
                    myScreen.Blit(this.myTiles[i][j].getMyTile(), new Point(j * 32, i * 32));
                    z++;
                }
                t++;
            }
 
 
 
Je ne pense pas que ma technique soit optimisée, de plus elle ne me donne pas entière satisfaction, alors si vous pouviez m'indiquez et m'expliquez une meilleure méthode...
 
Merci d'avance :)


---------------
www.forzaitalia.ath.cx Tout sur la squadra azzurra et le football européen
Reply

Marsh Posté le 10-11-2007 à 16:30:52   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed