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.


Sujets - Fugius

Pages: [1]
1
Graphique / sf::Text Local Bounds innatendues
« le: Mai 27, 2018, 07:41:44 am »
Salut, j'ai un comportement bizarre avec sf::text (plusieurs en fait, mais un sel que je n'arrive pas a regler).

A chaque fois que je cree un text, quelle que soit la police, lorsque j'utilise setPosition, le texte s'affiche légerement décalé, je me suis amusé à afficher sa bounding box pour voir (avec getLocalBounds pour sa taille et getSize pour sa position) et je me retrouve avec ce résultat incompréhensible :

J'ai vérifie plusieurs choses :
-L'origine est bien en 0, 0
-Si j'utilise getPosition au moment de l'affichage j'ai bien la position de la bounding box (la ou le texte devrait être)
-Si j'utilise getlocalBounds je vois que top est à 16 (ce qui explique le décalage) mais je ne sais ni d'ou ca viens, ni comment changer cette valeur
-J'ai repris 3 autres projets ou j'ai utilisé sfml, j'ai ajouté un texte simple et affiché leur bounding box, a chaque fois j'ai un décalage qui varie sur X entre 0 et 1 et sur Y entre 0 et 20, et je n'arrive pas a l'expliquer du tout.
-J'ai essayé sur chaque projet d'utiliser Arial pour voir si c’était ma font qui avait un problème : même résultats

Pour info je suis sous Windows 10 64 bits, j'ai compilé sfml avec la dernière version de MingW64 et je compile en ligne de commande avec un packet Atom que j'ai modifié (mais je pense pas que ça change grand chose).

Voilà en espérant que vous ayez une solution, parce que je ne comprends pas du tout d’où viens le problème ^^

Edit : J'ai une solution (mais pas tres clean) qui consiste a faire ça a chaque fois que la position du texte est update
Citer
  text.setPosition(text.getPosition().x, text.getPosition().y - text.getLocalBounds().top);

Ce qui donne le resultat :


(pour l'autre problème, lorsqu'on stocke une font dans une struct et qu'on garde les strucs sous forme de pointeur (les anciens pas les automatiques) dans une classe pour manager soit même la mémoire, le texte clignote et le programme crash de manière random comme s'il perdait l'adresse de la font, du coup comme je n'utilise pas tant de fonts, je les charge en plusieurs fois si besoin)

2
Salut, je me demandais s'il était possible d'Embed une application externe dans une sf::Window, je me doute que par défaut ce n'est pas le cas, mais pensez vous qu'il y aurait un moyen de faire ça ou je devrais chercher une autre lib pour ce projet ?

Merci par avance pour vos réponses, bonne journée !

3
Fenêtrage / Problème d'input avec les flèches
« le: Juillet 02, 2017, 09:44:13 pm »
Salut, petit problème que je n'arrive pas a expliquer avec sf::Keyboard::isKeyPressed
Un exemple sera plus rapide a expliquer :
    //events

    while (m_window->pollEvent(event)) {
        if (event.type == sf::Event::Closed)
            m_window->close();

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
            m_window->close();

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {
            m_boat->move_right();
            cout << endl << "right";
        }  

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)) {
            m_boat->jump();  
        }
           
    }
 

Dans ce morceau de code, tout fonctionne sauf la partie ou je check la flèche de droite, si je remplace Right par autre chose (par exemple A ou Numpad0 ...), ça fonctionne, mais les flèches sont reconnues rarement (si je reste appuyé sur la flèche  et uniquement sur la flèche 30s, 3-4 inputs seront détectés maximum).

je fais quelque chose de mal ou le problème viens de mon clavier/ordinateur ? (j'ai un vieux clavier mécanique logitech et je travaille sous windows 10).

Merci par avance de vos réponses :)

4
Graphique / Crash lors du chargement de shaders
« le: Mai 24, 2017, 03:00:53 pm »
Salut, après avoir reformaté mon pc, je me suis décidé a essayer un truc avec sfml, j'ai téléchargé la dernière version et l'utilise avec visual studio code et mingw.

Voilà mon problème : je peu faire n'importe quoi tout fonctionne ... jusqu'au moment ou j'essaye de load un shader. La ça compile mais quand j'execute le .exe j'ai un jolie "le programme a cessé de fonctionner".

Je pensais que ca venait d'une erreur de mon code, donc j'ai fait un truc tout simple pour tester et dans le doute j'ai récupéré les shaders (exemples) de la doc même si ça ne devrait pas faire crash le programme.

Voici mon code de test, ca bug au niveau du "shader.loadfromfile" :

int main() {
    sf::RenderWindow window(sf::VideoMode(1200, 713), "SFML works!");

    sf::Texture tx;
    tx.loadFromFile("res/textures/deathcube.png");

    sf::RectangleShape rec;
    rec.setTexture(&tx);

    rec.setSize(sf::Vector2f(600, 713));

    sf::Shader shader;

    if (!shader.loadFromFile("res/shaders/Cube.vert", "res/shaders/Cube.frag")) {
        std::cout << "error";
    }


    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(rec);
        window.display();
    }

    return 0;
}
 

Si vous avez une idée de l'origine de ce bug, vous m'aideriez grandement.
Je travaille sous win10, mes drivers sont à jours.
Merci par avance :)

Edit : Dans le doute j'ai vérifé : "sf::Shader::isAvailable()" est vrai

Pages: [1]
anything