Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Faren le Mai 23, 2014, 09:23:21 pm

Titre: [Résolu]Déplacement Sprite
Posté par: Faren le Mai 23, 2014, 09:23:21 pm
 Bonjour,

J'ai un problème pour déplacer un sprite. Lorsque j'appuie sur la touche pour le déplacer celle-ci déclenche bien un événement mais mon sprite ne se déplace pas.

int main()
{
        sf::RenderWindow window(sf::VideoMode(TAILLEX, TAILLEY), "Jeu de Pong");
        Terrain terrain;
        while (window.isOpen())
        {

                sf::Event event;
                while (window.pollEvent(event))
                {
                        if (event.type == sf::Event::Closed)
                                window.close();

                }
                        if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)){
                                terrain.getSpriteBalle().move(10,0);
                                std::cout<<"1"<<std::endl;
                        }

                window.clear(sf::Color(255,255,255));

                window.draw(terrain.getSpriteBalle()); 
                window.display();
        }

        return 0;
}


Terrain::Terrain(){
        sf::Texture textureBalle;
        if(!textureBalle.loadFromFile("ressources/ball.jpg")){
                perror("Image balle: ");
        }
        _balle=new Balle(textureBalle,1);

}

sf::Sprite Terrain::getSpriteBalle(){
        return _balle->getSpriteBalle();
}
 

Merci d'avance pour votre aide.

Cordialement Faren
Titre: Re : Déplacement Sprite
Posté par: G. le Mai 23, 2014, 09:30:42 pm
getSpriteBalle renvoie une copie, et tu appelles move sur cette copie.
Donc ouai, ton "vrai" sprite ne bouge pas.
Titre: Re : Déplacement Sprite
Posté par: Faren le Mai 23, 2014, 09:49:21 pm
je vois le problème, mais je ne sais pas comment le régler
Titre: Re : Déplacement Sprite
Posté par: G. le Mai 23, 2014, 10:04:01 pm
Renvoie une référence ou un pointeur.
Titre: Re : Déplacement Sprite
Posté par: Faren le Mai 23, 2014, 10:13:34 pm
merci, ça marche.
ça va faire longtemps que je n'avais pas fait de c++ et j'en avais oublié les bonnes pratiques.