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

Auteur Sujet: [RESOLU] Mon sprite ne s'affiche pas  (Lu 2531 fois)

0 Membres et 1 Invité sur ce sujet

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
[RESOLU] Mon sprite ne s'affiche pas
« le: Août 25, 2014, 04:37:21 pm »
Bonjour en ce moment je fait de la poo mais je coince sur l'affichage d'un sprite.

Voici l'erreur que me sort mon gentil compil : "Error : no matching function call to 'sf::Renderwindow::draw(Piece&)"

Je ne sait d'ou sa viens, merci de m'aider.

Main.cpp :

#include <iostream>
#include <SFML/Graphics.hpp>
#include<Piece.h>
using namespace std;

int main()
{
sf::RenderWindow window(sf::VideoMode(400, 400),  "test poo ");

Piece coins;
Piece spritex;



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

      if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
        {
          coins.placement();
        }

    window.clear();
    window.draw(spritex);
    window.display();
    }

}

 

Piece.h :

#include <SFML/Graphics.hpp>
#ifndef PIECE_H
#define PIECE_H


class Piece
{
    public:
         Piece();
         void placement();
    private:
        virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
        {
            target.draw(spr_piece, states);
        }
    sf::Texture t_piece;
    sf::Sprite  spr_piece;
    int rend2X;
    int rend2Y;
};

#endif // PIECE_H

 

Piece.cpp :

#include "Piece.h"
#include <iostream>
#include <sstream>
#include <stdlib.h>
#include <math.h>
#include <SFML/Graphics.hpp>

Piece::Piece()
{
    t_piece.loadFromFile("ressource/piece.png");
    spr_piece.setTexture(t_piece);


}
void Piece::placement()
{
    int randY = rand() % 300;
    int randX = rand() % 60;
    int rend2X = 1150 -  (randX *8 );
    int rend2Y = 800 - ( randY *2);
    spr_piece.setPosition(rend2X,rend2Y);
}

 
« Modifié: Août 25, 2014, 07:33:30 pm par Snitteur »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Mon sprite ne s'affiche pas
« Réponse #1 le: Août 25, 2014, 04:38:58 pm »
C'est pas magique, faut que Piece hérite de sf::Drawable.  ;)

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Mon sprite ne s'affiche pas
« Réponse #2 le: Août 25, 2014, 04:54:33 pm »
^^ ok mais comment on le fait hériter ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Mon sprite ne s'affiche pas
« Réponse #3 le: Août 25, 2014, 04:59:20 pm »
C'est dans les tutoriels, les examples, la documentation, et n'importe quel cours de C++... :P
Laurent Gomila - SFML developer

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Mon sprite ne s'affiche pas
« Réponse #4 le: Août 25, 2014, 06:35:54 pm »
voila je viens de faire sa sur Piece.h, pas d'erreur mais mon sprite ne s'affiche pas.

Piece.h
#include <SFML/Graphics.hpp>
#ifndef PIECE_H
#define PIECE_H


class Piece : public sf::Drawable, public sf::Transformable
{
    public:
         Piece();
         void placement();
    private:
        virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
        {
            target.draw(spr_piece, states);
        }
    sf::Texture t_piece;
    sf::Sprite  spr_piece;
    int rend2X;
    int rend2Y;
};

#endif // PIECE_H
 
« Modifié: Août 25, 2014, 07:24:33 pm par Snitteur »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Mon sprite ne s'affiche pas
« Réponse #5 le: Août 25, 2014, 07:22:26 pm »
Le pire c'est que tu as fais le plus gros du boulot, il te manque juste deux mots dans ton code.

Tu n'arrives pas à voir ce qu'il te manque en regardant ce genre de choses :
http://sfml-dev.org/tutorials/2.1/graphics-vertex-array-fr.php#creer-une-entite-sfml-like
http://sfml-dev.org/documentation/2.1-fr/classsf_1_1Drawable.php#details

?

Sinon je ne peux que te conseiller de bosser ton C++ avant de faire des choses compliquées.
Laurent Gomila - SFML developer

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Mon sprite ne s'affiche pas
« Réponse #6 le: Août 25, 2014, 07:24:12 pm »
J'ai rien dit c'est bon sa marche encore une erreur toute bête.
« Modifié: Août 25, 2014, 07:33:05 pm par Snitteur »