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

Auteur Sujet: Petite question à propos des vertex  (Lu 2219 fois)

0 Membres et 1 Invité sur ce sujet

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
Petite question à propos des vertex
« le: Mars 09, 2015, 10:45:10 am »
Bonjour.

J'ai un petit pb avec les vertex. Rien de bien méchant , j'aimerais simplement savoir si c'est normal :

Lorsque j'essaie de changer le couleur / alpha des vertex , je me vois obligé de procéder après le positionnement pour que cela prenne effet. Si je procède au changement de couleur avant, il n'est pas pris en compte.

 ex :


            _vertex[0] = sf::Vector2f( x                                  , y ) ;
            _vertex[1] = sf::Vector2f( x +  _pictureSize.x                , y ) ;
            _vertex[2] = sf::Vector2f( x +  _pictureSize.x                , y + _pictureSize.y  ) ;
            _vertex[3] = sf::Vector2f( x                                  , y + _pictureSize.y ) ;

            for ( int i = 0 ; i < 4 ; i ++ )
            {
                _vertex[i].color.a = _alpha ;
            }

            _vertex[0].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x                              , _counterY  * _pictureSize.y  ) ;
            _vertex[1].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x     +  _pictureSize.x        , _counterY  * _pictureSize.y  ) ;
            _vertex[2].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x     +  _pictureSize.x        , _counterY  * _pictureSize.y  +  _pictureSize.y  ) ;
            _vertex[3].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x                              , _counterY  * _pictureSize.y  +  _pictureSize.y  ) ;

 

ca ne prend pas effet. En revanche, comme suit, ca marche :



            for ( int i = 0 ; i < 4 ; i ++ )
            {
                _vertex[i].color.a = _alpha ;
            }


            _vertex[0] = sf::Vector2f( x                                  , y ) ;
            _vertex[1] = sf::Vector2f( x +  _pictureSize.x                , y ) ;
            _vertex[2] = sf::Vector2f( x +  _pictureSize.x                , y + _pictureSize.y  ) ;
            _vertex[3] = sf::Vector2f( x                                  , y + _pictureSize.y ) ;

            _vertex[0].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x                              , _counterY  * _pictureSize.y  ) ;
            _vertex[1].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x     +  _pictureSize.x        , _counterY  * _pictureSize.y  ) ;
            _vertex[2].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x     +  _pictureSize.x        , _counterY  * _pictureSize.y  +  _pictureSize.y  ) ;
            _vertex[3].texCoords = sf::Vector2f( _counterX  *  _pictureSize.x                              , _counterY  * _pictureSize.y  +  _pictureSize.y  ) ;

 

Donc...Est-ce normal ? Il y a-t-il une methode pour éviter ca et changer la couleur avant de positionner ?
( mon but évidement, étant de pouvoir modifier les couleurs depuis une autre fonction ).

Merci si vous pouvez m'aider  ;)

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
Re : Petite question à propos des vertex
« Réponse #1 le: Mars 09, 2015, 10:48:31 am »
autant pour moi  ;D

il suffit de rajouter .position ...logique  :P

donc ca marche.

dsl et merci quand même  ;)

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
Re : Petite question à propos des vertex
« Réponse #2 le: Mars 09, 2015, 06:32:02 pm »
Il y a tout de même une petite chose :

Quand j'essye d'incrémenter dirrectement l'alpha, par exemple, ca ne prend pas. En revanche, si je donne une valeur concrète, ca marche. Est-ce normal ?

ce code ne change pas la valeur de l'alpha :

        for ( int i = 0 ; i < 4 ; i ++ )
        {
            _IE_Container -> _vertex[i].color.a += _value ;
        }

 

ce code change bien la valeur de l'alpha :

        for ( int i = 0 ; i < 4 ; i ++ )
        {
            _IE_Container -> _vertex[i].color.a = _valueConst ;
        }

 

En essayant ainsi, ca ne marche pas non plus :


        for ( int i = 0 ; i < 4 ; i ++ )
        {
            int val = _IE_Container -> _vertex[i].color.a ;
            val -- ;
            _IE_Container -> _vertex[i].color.a += val ;
        }

 

Est-ce normal ?

Merci si vous pouvez m'aider

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Petite question à propos des vertex
« Réponse #3 le: Mars 09, 2015, 06:45:06 pm »
Vu le peu d'info...
Peut-être que tu dépasses la valeur d'un sf::Uint8 (unsigned char).

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
Re : Petite question à propos des vertex
« Réponse #4 le: Mars 09, 2015, 07:20:59 pm »
Merci pour la réponse.

Oui. Il semblerait en effet que cela fonctionne : J'avais du mal initialisé la valeur a la base.