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.