Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2911 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [SDL]Problème de Scrolling

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SDL]Problème de Scrolling

n°1640706
Splinter_7
Posté le 10-11-2007 à 16:30:52  profilanswer
 

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
mood
Publicité
Posté le 10-11-2007 à 16:30:52  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [SDL]Problème de Scrolling

 

Sujets relatifs
[javascript] Problème d'insertion dans un fichier .jsProbleme avec File / Buffered Reader aide svp
Problème de chargement SWFProblème de menu en cascade avec Firefox
probléme avec la fonction getDate()Problème OLE DB avec Delphi 7
Probleme avec ob_start [RESOLU]Débutant inside : Problème de 0 à gauche dans un nombre.
Problème de date avec macroProblème avec l'URL Rewriting.
Plus de sujets relatifs à : [SDL]Problème de Scrolling


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR