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

Auteur Sujet: Probleme SFML  (Lu 2159 fois)

0 Membres et 1 Invité sur ce sujet

TheYoungGeek43

  • Jr. Member
  • **
  • Messages: 87
    • Voir le profil
Probleme SFML
« le: Août 01, 2015, 10:12:55 am »
Bonjour,

Je suis sur Visual Studio 2015 donc j'ai compiler le code de la SFML pour qu"il fonctionne avec VS2015 est j'ai une erreur je sait pas d'où elle viens

Erreur
Gravité        Code    Description     Projet  Fichier Ligne
Erreur  LNK2001 symbole externe non résolu "public: static class sf::Color const sf::Color::Red" (?Red@Color@sf@@2V12@B)       Human vs Aliens C:\Users\maxim\documents\visual studio 2015\Projects\Human vs Aliens\Human vs Aliens\Bullets.obj        1
Erreur  LNK2001 symbole externe non résolu "public: static class sf::RenderStates const sf::RenderStates::Default" (?Default@RenderStates@sf@@2V12@B)  Human vs Aliens C:\Users\maxim\documents\visual studio 2015\Projects\Human vs Aliens\Human vs Aliens\Ennemy.obj 1
Erreur  LNK1120 2 externes non résolus Human vs Aliens C:\Users\maxim\documents\visual studio 2015\Projects\Human vs Aliens\Release\Human vs Aliens.exe        1

 

Bullets.h
#ifndef BULLETS_H
#define BULLETS_H

#include <SFML\Graphics.hpp>

#include "Human.h"

class Bullets
{
public:
        Bullets::Bullets();

        //Accesseurs
        int Bullets::getX(void) const;
        int Bullets::getY(void) const;
        int Bullets::getSpeed(void) const;

        //Mutateur
        void Bullets::setX(int valeur);
        void Bullets::setY(int valeur);
        void Bullets::setSpeed(int valeur);

        //Fonction
        void Bullets::draw(sf::RenderWindow &window, Map &map);
        void Bullets::init(sf::RenderWindow &window, Map &map);
        //void Bullets::shoot(sf::RenderWindow &window, Map &map);

private:
        int sizeX;
        int sizeY;
        int speedBullets;
        int x, y;
        int direction,etat;

        sf::RectangleShape rect;
        enum { BULLETSI, BULLETSL, BULLETSR, BULLETSU, BULLETSD };
        enum { ARRET, AVANCE };
};

#endif // !BULLETS_H
 

 Bullets.cpp
#include <SFML\Graphics.hpp>
#include <iostream>
#include "Human.h"
#include "Map.h"
#include "Bullets.h"

Human human;


Bullets::Bullets()
{
        sizeX = 32;
        sizeY = 32;
        speedBullets = 3;
        x = human.getX();
        y = human.getY();
        direction,etat = 0;
}
void Bullets::init(sf::RenderWindow &window, Map &map)
{
        sizeX = 32;
        sizeY = 32;
        speedBullets = 3;
        x = 100;
        y = 300;
        direction =BULLETSU;
        etat = ARRET;
}

int Bullets::getX(void) const { return x; }
int Bullets::getY(void) const { return y; }
int Bullets::getSpeed(void) const { return speedBullets; }


//Mutateurs
void Bullets::setX(int valeur) { x = valeur; }
void Bullets::setY(int valeur) { y = valeur; }
void Bullets::setSpeed(int valeur) { speedBullets = valeur; }

void Bullets::draw(sf::RenderWindow &window, Map &map)
{
        rect.setFillColor(sf::Color::Red);
        rect.setPosition(x, y);
        rect.setSize(sf::Vector2f(sizeX, sizeY));
}
/*void Bullets::shoot(sf::RenderWindow &window, Map &map)
{
        x += speedBullets;
        window.draw(rect);
}*/

Ennemy.h
#ifndef ENNEMY_H
#define ENNEMY_H

#include <SFML\Graphics.hpp>
#include "Map.h"

class Ennemy
{
public:
        Ennemy();

        //ACCESSEUR
        int Ennemy::getX(void) const;
        int Ennemy::getY(void) const;
        int Ennemy::getW(void) const;
        int Ennemy::getH(void) const;
        int Ennemy::getLife(void) const;
        int Ennemy::getSpeed(void) const;

        //MUTATEUR
        void Ennemy::setX(int valeur);
        void Ennemy::setY(int valeur);
        void Ennemy::setW(int valeur);
        void Ennemy::setH(int valeur);
        void Ennemy::setLife(int valeur);
        void Ennemy::setSpeed(int valeur);

        // Fonction
        void Ennemy::init(sf::RenderWindow &window);
        void Ennemy::draw(sf::RenderWindow &window, Map &map);
        void Ennemy::update(sf::RenderWindow &window);

private:

        int life = 100;
        int x, y, h, w;
        int speed;

        sf::Sprite ennemySprite;
        sf::Texture ennemyTexture;
};


#endif // !ENNEMY_H
 
Ennemy.cpp
#include "Ennemy.h"


Ennemy::Ennemy()
{
        if (!ennemyTexture.loadFromFile("ennemy/ennemy.png"))
        {
                std::cout << "ERROR LOAD TEXTURE ENNEMY" << std::endl;
        }
        else
        {
                ennemySprite.setTexture(ennemyTexture);
        }

        x = y = 0;
        h = w = 32;
        life = 0;
        speed = 0;
}

int Ennemy::getX(void) const{ return x; }
int Ennemy::getY(void) const { return y; }
int Ennemy::getW(void) const { return w; }
int Ennemy::getH(void) const{ return h; }
int Ennemy::getLife(void) const{ return life; }
int Ennemy::getSpeed(void) const{ return speed; }

void Ennemy::setX(int valeur) { x = valeur; }
void Ennemy::setY(int valeur) { y = valeur; }
void Ennemy::setH(int valeur) { h = valeur; }
void Ennemy::setW(int valeur) { w = valeur; }
void Ennemy::setLife(int valeur) { life = valeur; }
void Ennemy::setSpeed(int valeur) { speed = valeur; }

void Ennemy::init(sf::RenderWindow &window)
{
        life = 100;
        if (life == 0)
        {
                ennemySprite.setPosition(sf::Vector2f(300, 200));
        }

}
void Ennemy::draw(sf::RenderWindow &window, Map &map)
{
        ennemySprite.setPosition(sf::Vector2f(100, 200));
        //std::cout << "Ennemy life = " << life << std::endl;
        window.draw(ennemySprite);
}
 

Voila si j'ai compris sa vien de c'est deux classe

Merci pour votre aide
L'échec est la preuve que l'on à essayer

LeDragonDev

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Probleme SFML
« Réponse #1 le: Août 04, 2015, 10:13:17 am »
Salut!
Je vais peut être dire une bêtise ne connaissant pas beaucoup le compilo de visual, mais ce ne serait pas un soucis de linkage de lib ?

Je veux dire par là, as-tu bien spécifié dans visual les libs SFML que tu dois utiliser ?
(Si je dis une bêtise, n'hésitez pas à m'insulter.  ;D)