Forum de la communauté SFML
Aide => Graphique => Discussion démarrée par: chocobn le Août 06, 2012, 02:37:16 pm
-
Bonjour,
J'ai un programme dans lequel j'affiche différents polygones texturés, comme ceci (j'ai pris un tileset comme texture pour bien afficher les carrés noir et voir les proportions) :
(http://desmond.imageshack.us/Himg401/scaled.php?server=401&filename=texturepb1.png&res=landing)
Le problème, c'est que j'aimerais afficher les textures de ces polygones toutes avec une même échelle, et que ces textures s'affichent avec une sorte de "continuité". Je sais pas si j'arrive a être très clair, je pense donc qu'une image sera bien plus utile :
(http://img842.imageshack.us/img842/5033/texturepb2.png)
J'ai vu qu'il y avait une classe RenderTexture, mais je n'ai pas vraiment compris a quoi elle servait... Faut-il utiliser cette classe ou dois-je directement passer pas openGL?
-
Si tu avais des polygones convexes, tu aurais pu t'en tirer avec sf::Shape et ses fonctions setTexture / setTextureRect et les calculs qui vont bien. Mais puisqu'ils sont concaves, tu peux oublier sf::Shape.
En fait ton principal souci va être d'afficher des polygones concaves. Une fois que ce sera réglé, ton problème sera uniquement de calculer les coordonnées de texture correctement.
Deux solutions pour les polygones concaves : les découper en triangles toi-même, ou bien utiliser une classe toute faite du genre ConcaveShape dans la bibliothèque Thor (http://www.bromeon.ch/libraries/thor/).
-
Sinon, si c'est une image fixe et qu'il n'y a pas 3 km de carte, tu peux aussi tout afficher dans un RenderTexture, et lui appliquer un masque alpha qui ne laissera apparaître que les zones en question.