Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: TheYoungGeek43 le Novembre 02, 2015, 07:20:43 pm

Titre: Fonction Drawable qui ne marche pas
Posté par: TheYoungGeek43 le Novembre 02, 2015, 07:20:43 pm
Bonjour

Je souhaiterais mettre une fonction Drawable dans mon jeu pour dessiner sauf qu'il me met une erreur (je recode flappy bird)

Main.cpp
#pragma region Include
#include <SFML\Graphics.hpp>
#include <iostream>

#include "MenuBase.h"
#pragma endregion

using namespace std;

MenuBase menuBase;

int main()
{
sf::RenderWindow window(sf::VideoMode(288, 512, 32), "Flappy Bird");

while (window.isOpen())
{
sf::Event event;

while (window.pollEvent(event))
{
if (event.type == event.Closed)
{
window.close();
}
}
window.draw(menuBase.Draw());
window.display();
window.clear();
}

}
MenuBase.cpp
#include "MenuBase.h"
#include "Ressources.h"
#include <SFML\Graphics.hpp>

Ressources bg;

MenuBase::MenuBase()
{
m_background = "background.png";
m_backgroundTexture;
m_backgroundSprite;
}

void MenuBase::Update()
{

}
sf::Drawable MenuBase::Draw()
{
bg.LoadImage(m_background, m_backgroundTexture, m_backgroundSprite);

}
MenuBase.h
#ifndef MENUBASE_H
#define MENUBASE_H

#include <iostream>
#include <SFML\Graphics.hpp>

class MenuBase
{
public:
MenuBase();
void Update();
sf::Drawable Draw();

private:
std::string m_background;
sf::Texture m_backgroundTexture;
sf::Sprite m_backgroundSprite;
};

#endif // !MENUBASE_H

Merci pour vos réponse
Si vous avez besoin de quelque chose d'autre je suis à disposition
Titre: Re : Fonction Drawable qui ne marche pas
Posté par: Cpl.Bator le Novembre 02, 2015, 07:38:50 pm
Citer
window.draw(menuBase.Draw());
C'est un peu "crado" cette manière de faire ?
Pourquoi ne passe tu pas le rendertarget en paramètre ?

menuBase.Draw(window)


Citer
sf::Drawable MenuBase::Draw()
{
   bg.LoadImage(m_background, m_backgroundTexture, m_backgroundSprite);

}

c'est censé renvoyé une copie de drawable , elle ne renvois rien , & chargement pendant l'affichage...
Il te manque de sévère base à mon avis , ton oiseau n'ira pas loin : http://donswelt.itch.io/hit-space-to-flap

Citer
sauf qu'il me met une erreur
Laquelle ?  Compiler error at line 0 : remove mitten before code ?  ;D
Titre: Re : Fonction Drawable qui ne marche pas
Posté par: TheYoungGeek43 le Novembre 02, 2015, 08:00:04 pm
Severity Code Description Project File Line
Error C2664 'void sf::RenderTarget::draw(const sf::Vertex *,size_t,sf::PrimitiveType,const sf::RenderStates &)': cannot convert argument 1 from 'void' to 'const sf::Drawable &' Flappy Bird C++ SFML C:\Users\SEN134_MAZET\documents\visual studio 2015\Projects\Flappy Bird C++ SFML\Flappy Bird C++ SFML\Main.cpp 27

Voila l'erreur :D
Pour les base je l'ai est pris sur ce site car je n'est pas trouver d'autre tuto
Titre: Re : Fonction Drawable qui ne marche pas
Posté par: Cpl.Bator le Novembre 02, 2015, 09:06:42 pm
C'est bien ce que je t'ai dit, ta méthode n'est pas bonne , elle ne renvois rien. je te parlais plutot d'une méthode de ce type :

void MaClasse::Render(const sf::RenderTarget & target){
        target.draw(monAttribut);
}
Titre: Re : Fonction Drawable qui ne marche pas
Posté par: TheYoungGeek43 le Novembre 02, 2015, 09:41:37 pm
Esque tu connais un autre site qui donne de bon cours de dev avec SFML?
Titre: Re : Fonction Drawable qui ne marche pas
Posté par: Laurent le Novembre 02, 2015, 09:53:13 pm
Est-ce que tu as commencé par regarder les tutoriels, la documentation et les exemples officiels ? Je pense que si c'était le cas tu n'aurais déjà pas écrit une telle fonction ;)
Titre: Re : Fonction Drawable qui ne marche pas
Posté par: TheYoungGeek43 le Novembre 02, 2015, 09:58:06 pm
D'accord donc je les lirais en étant plus concentré :D