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

Auteur Sujet: Problème d'affichage de sprites...  (Lu 1308 fois)

0 Membres et 1 Invité sur ce sujet

hypoxanthine

  • Newbie
  • *
  • Messages: 1
    • Voir le profil
Problème d'affichage de sprites...
« le: Juin 09, 2016, 12:43:47 am »
Bonjour tout le monde ! Voici ma première demande d'aide sur ces forums, j'espère pouvoir présenter correctement mon problème...

Donc voilà, j'ai repris aujourd'hui la C++, la SFML, j'avais envie, comme ça. Evidemment, pour bien me mettre dedans, je décide de coder un Tetris, qui je suppose est un exercice classique. Or c'est un exercice vraiment difficile pour moi, je n'ai jamais fait si grand, bref.

En même temps, j'ai pour la première fois bien planché sur l'algorithme, pour être le mieux organisé, pour mieux découper mon programme, le rendre le plus compréhensible possible. J'ai trouvé une certaine configuration du code pour pouvoir gérer les menus, tout ça tout ça, j'espère qu'il est assez adapté, et je me demande si mon problème vient de là...

En fait, ma principale difficulté à ma reprise, c'est les pointeurs et références, j'ai des souvenirs, donc j'ai fait au mieux. Et là, voici mon problème, je charge tous mes sprites, je mets les IntRect's, la fenêtre s'ouvre, la compilation de ne heurte à aucun écueil, mais... Les boutons du menu, le background, ne s'affichent pas... Je pense que le code va parler de lui même, j'ai mis beaucoup de commentaire pour que vous puissiez comprendre au mieux le cheminement de mon algorithme. Je peux vous dire que tout marche bien jusqu'au menu, mon RenderWindow fonctionne bien, la référence marche bien (quand je modifie la taille de la fenêtre dans le fichier "Menu.cpp", ça fonctionne), la boucle principale des événements fonctionne, mais les Sprites ne sont pas là. Je soupçonne mon utilisation des pointeurs qui pourrait être mauvaise, mais le sprite de mon background n'est pas un pointeur, et je n'ai pas le background non plus... :/

Si vous pouvez m'éclairer, je serait super content de pouvoir avancer dans mon projet !

Voici un lien Github, je trouve que le site est assez ergonomique : https://github.com/anomage/Tetris

G.

  • Hero Member
  • *****
  • Messages: 1592
    • Voir le profil
Re : Problème d'affichage de sprites...
« Réponse #1 le: Juin 09, 2016, 01:31:39 am »
Quand tu crées une sf::RenderWindow, une sf::View de la même taille est créée.
Si tu agrandis cette fenêtre, la vue garde la même taille et est étirée pour correspondre à la taille de la fenêtre.

Donc quand tu crées une fenêtre de taille 0, 0, sa vue affiche ce qui est à la position 0, 0 jusqu'à 0 + largeur, 0 + hauteur. C'est à dire rien du tout puisque sa largeur et sa hauteur sont de 0.
Quand tu agrandis cette fenêtre à 1000, 500 (ou je sais plus quoi) sa vue de taille 0, 0 est étirée pour couvrir la fenêtre. Mais elle affiche toujours la même chose (= rien du tout puisque taille 0).

Si tu veux régler ça, soit tu crées ta fenêtre directement à la bonne taille, soit tu crées une vue à la taille correcte :
sf::View view(sf::FloatRect(0, 0, 1000, 500));
app.setView(view);
« Modifié: Juin 09, 2016, 01:34:42 am par G. »