Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

Affichage de plusieurs carrés


Sujet :

SFML

  1. #1
    Candidat au Club
    Affichage de plusieurs carrés
    Bonjour,
    Je me demandais en SFML comment fallait il faire pour afficher plusieurs carrés, je m'explique :
    Admettons que l'on veuille afficher 20 RectangleShape, on peut créer 20 variable de type RectangleShape: cela est penible mais possible:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    sf::RectangleShape objet1;
    sf::RectangleShape objet2;
    std::cout<<"..."<<std::endl;


    Mais admettons que l'on veuille maintenant crée 100 carré ? comment va t-on faire ? Je pensais à créer un vector de rectangleShape et faire une boucle for qui les affiche : mais le problème est que les carré ne s'affichent que pendant la boucle for et non à la fin de celle-ci (puisque les window.draw sont à l'interieur de la boucle for).
    Existe il donc une manière qui permettrait d'afficher 100 carrés à des positions differentes (en pouvant les faire bouger chacun à des endroits differents )...Sans créait 100 variables de type RectangleShape.

    merci d'avance.
    Bonne reception.

  2. #2
    Rédacteur/Modérateur

    Citation Envoyé par Thinking Voir le message
    Existe il donc une manière qui permettrait d'afficher 100 carrés à des positions differentes (en pouvant les faire bouger chacun à des endroits differents )...Sans créait 100 variables de type RectangleShape.
    Non.

    Tu veux afficher 100 entités, tu crées 100 variables de cet entité et appelle leur méthode draw.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre émérite
    Citation Envoyé par Thinking Voir le message
    les carré ne s'affichent que pendant la boucle for et non à la fin de celle-ci (puisque les window.draw sont à l'interieur de la boucle for).
    En quoi est-ce un problème ?
    Pour afficher ton écran, tu dois faire un draw de tous les objets que tu veux afficher - avec une boucle for par exemple - et à la fin, tu fais un display de ton écran.

    Existe il donc une manière qui permettrait d'afficher 100 carrés à des positions differentes (en pouvant les faire bouger chacun à des endroits differents )...Sans créait 100 variables de type RectangleShape.
    Tu peux, si tu le veux, créer un seul objet RectangleShape, et le positionner/dimensionner/colorer comme il faut avant chaque appel à draw, mais si tu devras de toute façon stocker quelque part les données de positionnement.

  4. #4
    Membre habitué
    Pour autant de carrés je te conseil de tout stocké dans un VertexArray via des Vertex si c'est pour de l'affichage brut, sinon un simple vecteur de RectangleShape devrait suffire ex :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    vector<RectangleShape> v_rs;
    v_rs.pushBack( RectangleShape( *constructeur*) );

###raw>template_hook.ano_emploi###