j'apprends C++ et SDL2 en programmant un classique roguelike. En ce moment, je construis la carte en rendant une partie d'une image tiles.png
comme celui-ci:C++ SDL2 comment la couleur des carreaux individuels
je suivais lazyfoo's tiling tutorial et il fonctionne, mais je voudrais être en mesure de changer chaque fond de carreaux et les couleurs de premier plan. Je peux changer les couleurs de la texture complète en faisant quelque chose comme this other tutorial, mais si je veux, disons, une porte marron quelque part et un gris ailleurs?
Ce qui est ici la meilleure approche? Évidemment, je ne peux pas avoir des centaines de combinaisons de couleurs stockées dans pngs. Devrais-je créer une texture pour chaque tuile, ou y a-t-il un meilleur moyen?
Merci! :)
Merci, je vais essayer. Mais SDL_SetTextureColorMod ne serait-il pas affecté par la texture entière? – JoePerkins
Oui. La texture entière devient jaune. En fait, pas la texture mais la couleur modulante. Si vous voulez le texte étiqueté (coloré) vous devez écrire votre propre moteur de rendu qui définira la couleur du texte dont vous avez besoin (peut-être en analysant les balises) et changer la couleur de la texture avec sdl_settexturecolormod. Le texte est juste la séquence de rectangles colorés avec des coeurs de texture différentes. – user3811082
Ok, ça a marché. J'utilise d'abord 'SDL_SetRenderDrawColor' pour définir l'arrière-plan de la mosaïque, puis j'utilise' SDL_RenderFillRect'. Avec 'SDL_SetTextureColorMod' je règle la couleur de premier plan et finalement avec' SDL_RenderCopy' et 'SDL_RenderPresent' je rends tout. – JoePerkins