Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: MouseButtonReleased  (Lu 2223 fois)

0 Membres et 1 Invité sur ce sujet

cChaD

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
MouseButtonReleased
« le: Avril 05, 2013, 05:09:03 pm »
Bonjour,

je code actuellement une scrollbar est j'ai besoin de savoir quand le bouton est relaché, j'ai fait ceci

    void ScrollBar::Update()
    {
        if(IsClicked())
            draged = true;

        if(IsClickedReleased())
            draged = false;

        if(draged)
        {
            unsigned int y = EngineManager::GetInstance()->Event->MouseState().pos.y;

            if(y > (unsigned)(position.y + 32) && y < (position.y + dimensions.height - 45))
                slider->SetPositionY(EngineManager::GetInstance()->Event->MouseState().pos.y - (slider->GetDimensions().height / 2));
        }
    }

mais le soucis est qu'il faut que je click encore une fois pour que sa s'arrete.

Merci d'avance

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : MouseButtonReleased
« Réponse #1 le: Avril 05, 2013, 05:14:21 pm »
Sans voir un peu plus de code, ça va être difficile ;)
Laurent Gomila - SFML developer

cChaD

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
Re : MouseButtonReleased
« Réponse #2 le: Avril 05, 2013, 05:18:02 pm »
bool Widget::IsClicked()
{
    if(IsHover() && EngineManager::GetInstance()->Event->MouseState().isButtonPressed)
        return true;

    return false;
}

bool Widget::IsClickedReleased()
{
    if(EngineManager::GetInstance()->Event->MouseState().isButtonReleased)
        return true;

    return false;
}

Mouse EventEngine::MouseState()
{
    if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
    {
        mouse.isButtonPressed = true;
    }
    else if(event->type == sf::Event::MouseButtonReleased)
    {
        mouse.isButtonReleased = true;
    }
    else
    {
        mouse.isButtonPressed = false;
        mouse.isButtonReleased = false;
    }

    mouse.pos = sf::Mouse::getPosition(*Win);

    return mouse;
}

EDIT : Finalement ça fonctionne :o

Désole du dérangement
« Modifié: Avril 05, 2013, 06:52:51 pm par cChaD »