Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Slash94 le Mars 01, 2017, 08:07:14 pm

Titre: Problème d'affichage de texture lorsque plusieurs chargées..?
Posté par: Slash94 le Mars 01, 2017, 08:07:14 pm
Salut à tous,

Alors voilà, j'ai un problème [TRES] simple à priori, ( sur la forme du moins )....

J'ai une classe "player" qui contient une texture     sf::Texture texSoldier; dans mon fichier prototype, je load la texture dans mon constructeur, tout s'affiche très bien une fois exécuté... mais voilà, dés que je crée une SECONDE texture dans mon prototype, genre sf::Texture texAim; et que je charge une image sur cette texture, plus rien ne s'affiche lorsque j'exécute mon programme... Ni même mon sprSoldier avec sa texture..
Là je dois avouer ne pas du tout comprendre ce qui peut bien se passer...
Idem lorsque je souhaite charger plus d'une texture dans une autre classe, mon sprite soldier ne s'affiche pas non plus !!

Merci de votre précieuse aide..

EDIT : Même problème avec les sprites..
Titre: Re : Problème d'affichage de texture lorsque plusieurs chargées..?
Posté par: Laurent le Mars 01, 2017, 08:59:54 pm
La description approximative du code n'a jamais valu le code lui-même ;)
Titre: Re : Problème d'affichage de texture lorsque plusieurs chargées..?
Posté par: Slash94 le Mars 01, 2017, 09:07:39 pm
Oups, excuse-moi, autant pour moi  ;D

#ifndef PLAYER_H_INCLUDED
#define PLAYER_H_INCLUDED

#include <SFML/Graphics.hpp>

#include <iostream>
#include <vector>
#include <math.h>

class player{

protected:
    //sfml
    sf::Texture texSoldier;
    sf::Sprite sprSoldier;
    sf::Vector2i mousePosition;
    sf::Vector2f diff;
    sf::Clock clockMove;
    sf::Clock clockShot;
    //float
    float xPos, yPos, angle;
    //int
    int anim = 0;
    int gunTime = 400;
    //vector
    std::vector<sf::CircleShape>vecBullet;

public:
    player();
    void drawTo(sf::RenderWindow &win);
    void checkMoves();
    void checkRotation(sf::RenderWindow &win);
    void checkFire(sf::RenderWindow &win);
    void setPosition(float x, float y);
    //getters
    int getGunTime();
    ~player();

};

#endif // PLAYER_H_INCLUDED
 

Voici mon prototype "player.h", et là, tu vois, admettons que je rajoute tout en haut dans mes attributs, un autre sf::Texture MATEXTURE ou un autre sf::Sprite MONSPRITE et hop, mon sprite Soldier ne s'affiche plus....
Titre: Re : Problème d'affichage de texture lorsque plusieurs chargées..?
Posté par: Slash94 le Mars 01, 2017, 09:23:11 pm
Pareil pour ma classe viseur (crosshair) :

Mon personnage et le viseur s'affichent très bien quand je lance mon programme mais si je rajoute un autre sprite dans ma classe crosshair ( genre sf::Sprite sprImpact ou sf::Texture texImpact ) mon personnage de ma classe player disparait lors du lancement du programme alors qu'il n'y a aucun lien entre les 2 classes pourtant.. même pas d'inclusion de l'une ou de l'autre...



#ifndef CROSSHAIR_H_INCLUDED
#define CROSSHAIR_H_INCLUDED

#include <SFML/Graphics.hpp>

class crosshair{

protected:
    sf::Texture texCrossHair;
    sf::Sprite sprCrossHair;
    sf::Vector2f mousePosition;

public:
    crosshair();
    void checkImpactAnim(sf::RenderWindow &win);
    void drawTo(sf::RenderWindow &win);
    ~crosshair();

};

#endif // CROSSHAIR_H_INCLUDED
 

EDIT : Ben c'est résolu.. j'ai fermé Code::Blocks par mégarde et en le relançant, mon programme affichait bien tous les sprites !! Donc c'était un bug du compilo !  ;D