Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: cherault le Juin 27, 2015, 10:21:30 am

Titre: Changer l'opacité de la couleur dynamiquement avec le clavier
Posté par: cherault le Juin 27, 2015, 10:21:30 am
Bonjour à tous,

J'ai un petit projet visant à créer un jeu en réalité augmenté.
J'ai donc interfacé SFML avec OPENCV et l'ensemble fonctionne très bien (Même si le code n'est pas optimisé).

Dans ma fenetre, j'ai des formes qui ont une couleur par défaut (Rouge par exemple).
J'aimerai, avec le clavier (Touche Up and Down) faire varier l'opacité de cette couleur graduellement (0-255), liée au coef. alpha.

J'ai donc créer une petite condition, mais elle ne fonctionne pas !!!

Voici la boucle:

///--CHANGE COULEUR--///
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
        {
            for (stepColor = 0; stepColor <= 255; stepColor+=5)
            {
                cible.setFillColor(sf::Color(255,0,0,stepColor));
            }
        }
 

la constante "stepColor" a été déclaré comme suit:

int stepColor(0);
 

Merci pour votre aide

Amitiés

Chris
Ou ais-je commis une erreur ?
Titre: Re : Changer l'opacité de la couleur dynamiquement avec le clavier
Posté par: Kernel panik le Juin 27, 2015, 10:47:06 am
Actuellement tu changes l'opacité de 0 à 255 dans la même frame, si tu veux que ça change dans le temps, il faut que tu l'augmentes au fil des frames avec simplement

if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
{
        if (stepColor < 255)
                stepColor += 5 ;

        cible.setFillColor(sf::Color(255,0,0,stepColor));
}

bien entendu en déclarant ton stepColor (qui deviendrait plutôt un opacity) en global et non dans la fonction de mise à jour, quelle ne soit pas réinitialisée à chaque passage ^_^

Après pour bien faire, il faudrait que tu utilises une gestion de temps pour calculer un incrément en fonction du framerate, sinon le changement d'opacité ne se fera pas toujours dans le même délais.
Titre: Re : Changer l'opacité de la couleur dynamiquement avec le clavier
Posté par: cherault le Juin 27, 2015, 10:50:02 am
Merci beaucoup pour ton conseil avisé.
Tu n'as que raison !!!

Merci encore.

Amitiés,

Chris.