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

Pages: [1]
1
Général / Re: pb template
« le: Juillet 16, 2022, 02:09:53 pm »
désolé pour l'erreur en image et merci pour l'aide, ca fonctionne :

template<typename TShape>
bool MouseInteract(const sf::Event& _event, const sf::RenderWindow& _window, const TShape& _tShape)
{
        bool bReturn = false;

        sf::Vector2f posMouse = sf::Vector2f(sf::Mouse::getPosition(_window));

        if (_tShape.getGlobalBounds().contains(posMouse))
        {
                if (_event.type == sf::Event::MouseButtonPressed)
                {
                        if (_event.key.code == sf::Mouse::Left)
                        {
                                bReturn = true;
                        }
                }
        }

        return bReturn;
}

2
Général / pb template
« le: Juillet 15, 2022, 09:57:43 pm »
Bonjour, j'utilise une fonction template qui permet à l'utilisateur d'intéragir avec des sf::RectangleShape ou sf::Sprite avec la souris :

template<typename TShape>
bool MouseInteract(const sf::Event& _event, const sf::RenderWindow& _window, const TShape& _tShape)
{
        bool bReturn = false;

        int mx = sf::Mouse::getPosition(_window).x;
        int my = sf::Mouse::getPosition(_window).y;

        sf::Vector2u sizeShape;

        if (std::is_same<TShape, sf::RectangleShape>::_tShape)
        {
                sizeShape = _tShape.getSize();
        }
        else if (std::is_same<TShape, sf::Sprite>::_tShape)
        {
                sizeShape = _tShape.getTexture()->getSize();
        }

        if (mx > _tShape.getPosition().x && mx < _tShape.getPosition().x + sizeShape.x && // en X
                my > _tShape.getPosition().y && my < _tShape.getPosition().y + sizeShape.y)
        {
                if (_event.type == sf::Event::MouseButtonPressed)
                {
                        if (_event.key.code == sf::Mouse::Left)
                        {
                                bReturn = true;
                        }
                }
        }

        return bReturn;
}

mais il y a un pb à la compilation, donc comment faire ?

Pages: [1]