IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

[SFML 1.6] Jeu en 2d iso : Affichage des tiles uniquement visible par le joueur


Sujet :

SFML

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 34
    Points : 31
    Points
    31
    Par défaut [SFML 1.6] Jeu en 2d iso : Affichage des tiles uniquement visible par le joueur
    Bonjour,

    Je débute en programmation avec la sfml et je suis en train de faire un jeu en 2d isométrique. J'affiche donc ma map en assemblant des tiles, mon personnage avance dessus en bougeant la caméra, mais le soucis c'est que sur une grosse map le jeu commence à ramer sérieusement au niveau des fps.

    Je vous consulte donc pour savoir quel est la meilleur technique à adopter et comment l'appliquer à mon code pour optimiser l'affichage des tiles, j'ai en tête de prendre la position centrale de la view et d'afficher le nombre de tiles en x et en y selon cette position.

    voici un bout de code en c++ :

    Code : 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
     
      sf::Vector2f positionTileUpLeft(0, 0);
      int max_tile_length = 10;
      int max_tile_width = 10;
     
      std::vector<sf::Sprite *>::iterator it = this->floorVect.begin();
      for (i = positionTileUpLeft.x; i < this->y_map || i < max_tile_length; i++) // je parcours tous les tiles et je set leurs valeurs en x et y
        {
          for (j = positionTileUpLeft.y; j < max_tile_width; j++)
            {
              x = (i - j) * (*it)->GetSize().x / 2;
              y = (i + j) * (*it)->GetSize().y / 2;
     
              (*it)->SetX(x);
              (*it)->SetY(y);                                                                                                                                   
              this->App->Draw(**it);
              ++it;
            }
        }
    Merci d'avance pour votre aide.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    En optimisation vous pouvez faire en sorte de ne pas afficher les tuiles qui ne sont pas réellement sur l'écran. Je veux dire par là, que grâce à votre caméra, vous devriez être capable de déterminer jusqu'où vous voyez les tuiles et donc, de ne pas afficher celle à gauche, en haut, en bas ou à droite de l'écran.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 34
    Points : 31
    Points
    31
    Par défaut
    ok merci j'ai supprimer les tiles non visibles l'écran ça a beaucoup améliorer les performances, bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage des coups joués de jeu d'échecs
    Par Narlen27 dans le forum Tkinter
    Réponses: 1
    Dernier message: 03/12/2013, 19h05
  2. Création d'un jeu tactics 2D iso HTML5
    Par dathims dans le forum Jeux web
    Réponses: 3
    Dernier message: 15/12/2011, 15h12
  3. affichage des enregistrements qui commencent par une lettre donnée
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/10/2011, 09h08
  4. Jeu de la vie - Affichage en mode texte.
    Par Endori dans le forum Débuter
    Réponses: 6
    Dernier message: 08/12/2010, 11h22
  5. Réponses: 3
    Dernier message: 28/07/2006, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo