Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: kaktus le Juin 02, 2017, 04:55:29 pm

Titre: Problème de lecture du loadFromFile de la classe Texture
Posté par: kaktus le Juin 02, 2017, 04:55:29 pm
Bonjour,

Je suis nouveau dans la programmation C++ et sfml.
Depuis ce matin je cherche un solution, comme je ne trouve pas je viens vous demander de l'aide.

je n'arrive pas un importer une image il ne semble pas reconnaître  loadFromFile j'ai mis le message d'erreur à la fin.

Merci pour votre aide car là je ne sais pas quoi faire.

Voici mon code :

#include <SFML/Graphics.hpp>
#include <string>
#include <iostream>
#include <cstdlib>
#include "shape.h"
#include <SFML/Window.hpp>
#include <SFML/system.hpp>
#include <SFML/Audio.hpp>

using namespace std;
using namespace sf;

sf::RenderWindow window;
sf::CircleShape cercle;
sf::RectangleShape rect;
int speed = 5;
sf::Vector2i positionSouris;
sf::Texture Perso;
sf::Sprite sprite_perso;
void gestion_clavier();




int main()
{
    //création de la fenêtre 800x600

    window.create(sf::VideoMode(800,600), "Ma fenêtre");
    //modifier la osition de la fenêtre
    window.setPosition(sf::Vector2i(50, 200));
    //Modifier la taille de la fenêtre
    //window.setSize(sf::Vector2u(800, 800));
    window.setFramerateLimit(60);
   std::cout <<"Début du jeux"<< std::endl;



    if (!Perso.loadFromFile("mario.png"))
   {
        std::cout <<"erreur chargement mario"<< std::endl;

   }



   cercle.setFillColor(sf::Color(100,250,50));
   cercle.setOutlineColor(sf::Color(150,200,40));
   cercle.setOutlineThickness(5);
   cercle.setRadius(50);
   cercle.setPosition(100, 100);
   rect = PB_rect(10,10,32,32);




    //tant que la fenêtre est ouverte
    while(window.isOpen())
    {
        sf::Event event;

       //test des événements
        while (window.pollEvent(event))
        {
            //si on clic sur fermer
            if (event.type == sf::Event::Closed)
                window.close();
        }
        /*gestion du clavier*/
        gestion_clavier();

        //on dessine, on affiche et on met à jour
       window.draw(cercle);
       window.draw(rect);
       window.display();
       window.clear();



    }



    return 0;
}

//objet gestion clavier
void gestion_clavier()
{
    if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
    {
           //on récupère les coordonées du clic gauche de la souris
           positionSouris = sf::Mouse::getPosition(window);
           std::cout << "Mouse.x" <<positionSouris.x <<"Mouse.y" <<positionSouris.y <<std::endl;
           // on créer un variable position souris
           int mouseX = positionSouris.x;
           int mouseY = positionSouris.y;
           //on positionne le rectangle à l'endroit du clic gauche souris
           rect.setPosition(mouseX,mouseY);
        }

    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
        {
            rect.move(0,-speed);
        }
         if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
        {
            rect.move(0,speed);
        }
         if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
        {
            rect.move(-speed,0);
        }
         if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
        {
            rect.move(speed,0);
        }

}


voici le message d'erreur.

F:......|39|undefined reference to `_imp___ZN2sf7Texture12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_4RectIiEE'|

Titre: Re: Problème de lecture du loadFromFile de la classe Texture
Posté par: Cpl.Bator le Juin 03, 2017, 03:41:09 pm
Bonjour.

Citer
undefined reference to

signifie un problème de linkage.
je t'invite à lire cette page, tout y est très bien expliqué :

https://www.sfml-dev.org/tutorials/2.4/index-fr.php (https://www.sfml-dev.org/tutorials/2.4/index-fr.php)


Citer
#include <SFML/system.hpp>
Marchera pas sous Linux, sensible à la case.


Citer
using namespace sf;

sf::RenderWindow window;
...
le sf:: ne sert plus à rien.


Titre: Re: Problème de lecture du loadFromFile de la classe Texture
Posté par: Laurent le Juin 03, 2017, 05:09:44 pm
Citer
linkage
Ou alors "édition de liens" ;)