Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - G.

Pages: « Précédente 1 [2] 3 4 ... 42 Suivante »
16
T'étais pas déjà passé 10 fois à SDL ?  :o ???

17
Général / Re: SFML c++ event.key.code
« le: Juillet 10, 2021, 06:35:51 pm »
Il faut absolument que le if (event.type == sf::Event::TextEntered) soit à l'intérieur du while (window.pollEvent(event)), c'est une certitude. (sans sleep)
Il ne faut utiliser les events que lorsqu'il y a un événement, et c'est forcément à l'intérieur de la boucle d'événement, sinon tu l'utilises quand il n'y a pas d'événement et du coup ça répéte tout seul ta lettre.
Bref, n'utilise jamais d'événement en dehors de la boucle d'événements.
while (window.pollEvent(event))
{
       if (event.type == sf::Event::Closed)
       {
              window.close();
       }
       else if (event.type == sf::Event::TextEntered)
       {
              // tout ton code relatif au textentered
       }
}

Remate bien le tuto, la lettre tapée est contenue dans event.text.unicode, tu n'as pas besoin de vérifier chaque lettre pour savoir laquelle c'est avec une série de if infinies, tu peux directement l'ajouter à ton text.
txt.setString(txt.getString() + event.text.unicode);


Si tu veux vérifier que event.text.unicode est un chiffre ou une lettre avant de l'ajouter tu peux utiliser std::isalnum, et pour tes caractères un peu spéciaux là tu peux comparer directement ouais.
            if (event.type == sf::Event::TextEntered)
            {
                if (std::isalnum(event.text.unicode) || event.text.unicode == '-' || event.text.unicode == ' ' || event.text.unicode == '|')
                {
                     txt.setString(txt.getString() + event.text.unicode);
                }
            }

Essaie d'améliorer progressivement ton truc pour bien comprendre chaque étape, mais je suis à peu près certain que déplacer ton code à l'intérieur de la boucle d'évènement (et virer le sleep) permettra d'écrire normalement

18
Général / Re: SFML c++ event.key.code
« le: Juillet 10, 2021, 06:10:54 am »
sf::Event event;
while (window.pollEvent(event))
{
// tous les évènements vont ici, si t'utilises un évènement en dehors de cette boucle, c'est pas bon.
}
Tu utilises les données de ton event en dehors de cette boucle non ? (j'ai pas lu, j'ai juste cherché "pollevent" et "textentered" et ça m'a suffit pour voir que c'était pas dans la boucle)
C'est pas bon car en dehors de la boucle, event peut valoir un peu n'importe quoi, ou être utilisé alors qu'il n'y a aucun événement.


Ensuite sur les forums les gens demandent des codes minimaux et complets qui reproduisent le problème.
Complets ça veut pas dire que le mec doit balancer les 10k lignes de son projet, mais que le code puisse être éventuellement compilé pour être testé, et que l'origine du problème soit visible (par ex les 3 lignes de code de ton premier post n'avaient pas de problème)
Et minimal ça veut dire que tu vires tout ce qui est inutile et n'a rien à voir avec le problème.

Par exemple toi ton problème c'est que tes événements merdent quand tu tapes des lettres.
Bah tu fais juste un code qui fait tourner une fenêtre SFML, avec une boucle d'événements et tes évènements TextEntered. Ça fait 40 lignes et voilà.
D'une part en écrivant ce code minimal et complet tu augmentes grandement les chances d'avoir des réponses et de résoudre le problème plus vite. Et d'autre part dans le meilleur des cas ça te permettra d'identifier toi-même le problème et de le résoudre. Dans les 2 cas tout le monde gagne du temps

19
Général / Re: SFML c++ event.key.code
« le: Juillet 09, 2021, 10:54:52 pm »
Tu utilises bien les événements uniquement à l'intérieur de la boucle d'événements ?

20
Général / Re: SFML c++ event.key.code
« le: Juillet 09, 2021, 05:38:10 pm »
Comme indiqué dans le tuto la donnée associée à l'événement TextEntered est event.text.unicode et non pas event.key.code, pas besoin de tester chaque lettre elle est déjà dans event.text.unicode.
Ensuite j'ai pas le compris le rapport entre le code que tu postes là (utilise la balise code de l'éditeur) ce dont tu parles au début, dans ton post initial t'as un prob avec keypressed et là tu montres du textentered.
Et l'histoire du sleep  ??? ???

Ensuite comme dit Laurent, ton code est ni complet ni simplifié, il est peut être mal placé ou alors il y a des trucs ignobles autour, etc.

21
Graphique / Re: Limiter les FPS
« le: Juin 22, 2021, 08:10:55 pm »
C'est déjà le fonctionnement de base avec SFML

22
Général / Re: Code glsl non compris
« le: Juin 18, 2021, 12:00:35 pm »
Ah bah pas le choix il va falloir apprendre un minimum le GLSL

23
Graphique / Re: Afficher un cercle à partir d'une classe
« le: Mars 22, 2021, 07:23:36 pm »
Tu crées un 2eme cercle appelé "cercle" localement dans ton constructeur au lieu d'utiliser ta donnée membre aussi appelée "cercle".
Initialise ta donnée membre "cercle" dans la liste d'initialisation de ton constructeur.

Bouton::Bouton() : cercle(20)
{
        cercle.setPosition(sf::Vector2f(50, 130));
        cercle.setFillColor(sf::Color::Green);
}

24
Général / Re: Compilation statique
« le: Novembre 22, 2020, 10:53:55 am »
- GCC version 6.3.0
- MinGW DW32
- Version de SFML 2.5.1 / GCC 7.3.0 MinGW (DW2) - 32-bit
La version du compilateur doit correspondre à 100% !
Bon bah je pense que voilà quoi, version différente.
Du coup soit tu utilises le même compilateur que la version de SFML que tu télécharges, soit tu compiles toi-même SFML avec ton compilateur.

25
Général / Re: Ecrire texte sur sprite
« le: Novembre 13, 2020, 01:27:28 am »
Soit tu draw spriteTest puis text. (entre le clear et le display)
Soit tu utilises une sf::RenderTexture sur laquelle tu draw ta carte, ton monstre et ton texte, pour ensuite dessiner la texture résultante.
Plus d'infos : https://www.sfml-dev.org/tutorials/2.5/graphics-draw-fr.php#dessin-hors-cecran

Au passage, les chargements de textures et de fonts sont des opérations un peu lourdes, il est probable que tu veuilles les effectuer qu'une seule fois en dehors de ta boucle d'affichage plutôt qu'à chaque frame.

26
Général / Re: Ecrire texte sur sprite
« le: Novembre 12, 2020, 06:25:32 am »
Afficher du texte sur un sprite ou sur "rien" c'est pareil, il y a rien de particulier. Pense juste à dessiner tes éléments dans le bon ordre : les derniers trucs dessinés apparaissent au dessus.
Donc draw ton texte après ta carte.

Ensuite sans code on en sait pas plus.
Ta carte est blanche, ton texte est blanc aussi ?
T'arrives à afficher ton texte en temps normal sans les autres sprites ? (voir si tu charges bien la police etc.)

27
Graphique / Re: Lenteur du chargement d'images en SFML
« le: Octobre 15, 2020, 04:28:37 am »
Verifie que tu compiles en mode release et pas en debug.
J'ai essayé chez moi charger une sf::Texture avec un jpg de 1920*1080 en utilisant loadFromFile prend 100ms en release et 280ms en debug.

A mon avis c'est comparable à SDL, voire la même chose.

28
Suggestions de nouvelles fonctionnalités / Re: Un évènement filedrop
« le: Octobre 15, 2020, 04:17:04 am »
https://en.sfml-dev.org/forums/index.php?topic=19096.0
Si ça t'intéresse ils en ont discuté pendant quelques années (en anglais) et apparemment certains avaient commencé à programmer quelque chose mais il semblerait que ça n'ait pas abouti.

29
La team voulait pas car ça voudrait dire choisir un format d'affichage, et il y a pas de bonne solution car il y a trop de cas différents.
Pourquoi "10 10" et pas "10, 10" ou "(10, 10)" ou "x: 10, y: 10" etc. ?

Et aussi parce que quand tu fournis << en général tu fais aussi le >> et c'est encore pire.

Pis bon, c'est simple à faire soi-même comme on le veut. :p

30
Fenêtrage / Re: Classe Input
« le: Juillet 30, 2020, 10:55:24 am »
Elle a été séparée en 3 : sf::Joystick, sf::Mouse, sf::Keyboard

Pages: « Précédente 1 [2] 3 4 ... 42 Suivante »