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 - frcs6

Pages: [1]
1
Graphique / Re : Problème avec les sf::VertexArray (primitive sf::Lines)
« le: Septembre 26, 2013, 09:33:51 pm »
Super.

Merci pour la précision, je n'avais pas fais attention à ce détail.

Mes collisions s'affichent parfaitement.

2
Graphique / Re : Problème avec les sf::VertexArray (primitive sf::Lines)
« le: Septembre 26, 2013, 10:49:35 am »
Merci pour la réponse (désolé pour le code source non nettoyé, je m'appliquerai plus la prochaine fois).

Dans le doute, j'ai refais le test.

Dans ma fenêtre, lorsque le carré s'affiche, je constate que le coin en bas à gauche n'est pas correctement fermé, il manque un pixel.
Le rectangle fait 241 pixel par 241.
Et le dernier vertex est placé à 99 pixel du bord de la fenêtre au lieu de 100.
Le premier vertex est bien à 100 pixel du bord de la fenêtre.

Si j'utilise un RectangleShape, j'obtiens un carré parfait

Ci-joint une impression d'écran.

PS : Au passage, SFML est une librairie génial, je joue principalement avec la version .Net, et j'arrive à faire ce que je veux très facilement.

3
Bonjour,

J'essai d'afficher les polygones représentant la zone de collision d'une entité.
Pour ce faire, j'utilise un sf::VertextArray, avec la primitive sf::Lines.

Sur un polygones simple, un carré, je n'arrive pas a afficher un carré correct.
Tous les vertex ne s'affiche pas à la bonne position.
Est-ce que j'ai écris qqch de travers ?

Merci.

Francis.

Voici un exemple de code source :

#include "Game.h"

#include <sstream>
#include <SFML/Window.hpp>
#include <SFML/Graphics/Font.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/Text.hpp>

Game::Game(void) :
        fps(0),
        max(0)
{
}

Game::~Game(void)
{
}

void Game::Run()
{
        sf::VertexArray vertices(sf::Lines,8);
        vertices[0].position = sf::Vector2f(100, 100);
        vertices[1].position = sf::Vector2f(340, 100);

        vertices[2].position = sf::Vector2f(340, 100);
        vertices[3].position = sf::Vector2f(340, 340);

        vertices[4].position = sf::Vector2f(340, 340);
        vertices[5].position = sf::Vector2f(100, 340);

        vertices[6].position = sf::Vector2f(100, 340);
        vertices[7].position = sf::Vector2f(100, 100);

        sf::ContextSettings contextSettings;
        contextSettings.depthBits = 32;
        sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window with OpenGL", sf::Style::Close, contextSettings);

        sf::Font font;
        font.loadFromFile("c:/windows/fonts/arial.ttf");

        sf::Text info;
        info.setFont(font);
        info.setCharacterSize(12);
        info.setColor(sf::Color::Yellow);

        fps = 0;
        max = 0;
        sf::Clock clock;

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

                fpsCount++;
                if(clock.getElapsedTime().asMilliseconds() >= 1000)
                {
                        fps = fpsCount;
                        if(fps > max) max = fps;
                        clock.restart();
                        fpsCount = 0;
                }

                window.clear();
                std::stringstream stream;
                stream << fps;
                stream << " Fps - ";
                stream << max;
                stream << " Max";
                info.setString(stream.str());
                window.draw(info);
        window.draw(vertices);
                window.display();
        }
}

Pages: [1]
anything