Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème de compréhension du TileMap  (Lu 1838 fois)

0 Membres et 1 Invité sur ce sujet

TheKingArthur

  • Invité
Problème de compréhension du TileMap
« le: Août 09, 2014, 10:01:53 am »
Salut tout le monde, c'est TheKingArthur !

J'ai comme qui dirait un petit problème de compréhension de l'exemple de tilemap des tutos sfml.
http://www.sfml-dev.org/tutorials/2.1/graphics-vertex-array-fr.php

Et donc je me demandai si qqn voulais bien donner peu de son temps pour m'expliquer sivouplé.
Et en echange je lui donnerais... euh...toute ma reconnaissance !

P.S : je suis novice en sfml.

P.S n°2 : il n'y aura qu'un seul P.S.
« Modifié: Août 09, 2014, 10:12:05 am par TheKingArthur »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème de compréhension du TileMap
« Réponse #1 le: Août 09, 2014, 03:05:09 pm »
Qu'est-ce que tu ne comprends pas ?
Laurent Gomila - SFML developer

TheKingArthur

  • Invité
Re : Problème de compréhension du TileMap
« Réponse #2 le: Août 09, 2014, 07:09:04 pm »
Qu'est-ce que tu ne comprends pas ?

Ce que je ne comprend pas c'est la classe tilemap avec sa fonction load et draw.

Je trouve que ce n'est pas assez expliquez mais peut-être que c'est moi qui suis un peu bête aussi...

CINEfilHD77

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Re : Problème de compréhension du TileMap
« Réponse #3 le: Août 09, 2014, 07:47:33 pm »
La fonction load(), elle charge la texture en mémoire, et puis elle positionne chaque Quad du VertexArray pour qu'ils soient tous côte-à-côte (En gros ça fait une map quoi), et elle indique à chaque sommet de ces quads la coordonnées de texture de la tuile sur la texture chargée.
Dans le main, tu vois que Laurent a rempli un tableau de chiffres. Ces chiffres sont les index des différentes tuiles sur la texture du tileset. La fonction load() va regarder quel est le numéro d'index de telle ou telle tuile, et va donc calculer, selon la largeur et la hauteur de tuile données en paramètres, les coordonnées de la texture.

Par exemple :



Ici, tu vois qu'on a un Quad (En rouge), et pour chacun de ses sommets, on a pris les coordonnées correspondants au bout de texture à plaquer et on lui a passé via texCoords(). Après, lors du dessin, c'est la SFML qui s'occupe de plaquer la texture comme il faut.

Après, pour la fonction draw(), justement, c'est encore plus simple.
Elle prend un RenderStates, elle lui donne une transformation (Position, Rotation, Echelle), en l’occurrence ici c'est celle du tilemap, vu que la classe hérite de sf::Transformable, donc tu t'en fous, c'est juste obligé pour la suite du truc. La ligne suivante, elle dit au RenderStates qu'il doit utiliser la texture chargée via load() pour texturer ce qu'on essaie de dessiner.
Ensuite, bah on dessine le VertexArray en lui passant le RenderStates complété.

Après, si tu comprends pas, c'est que t'as pas bien cerné ce qui se passe avant tout ça dans les tutos', revois  toutes ces notions, notamment les VertexArray, et les héritages de sf::Drawable, sf::Transformable, et puis les RenderStates aussi.

TheKingArthur

  • Invité
Re : Problème de compréhension du TileMap
« Réponse #4 le: Août 10, 2014, 10:38:49 am »
Merci beaucoup à toi CINEfilHD77 maintenant j'ai compris.
En fait c'est juste que j'avais pas cerner le principe.

Merci à vous pour votre rapidité à m'avoir répondu.