Bien le bonjour,
Habituellement je trouve mes réponses tout seul, mais la je ne suis même pas capable d'expliquer pleinement le problème
N'hésitez pas à me reprendre, je manque énormément de vocabulaire en informatique.
BREF!
Je tente de faire un pong. Pour cela j'ai créer une classe "Barre" :
class Bar : public sf::Sprite
{
public:
Bar(float x, float y, sf::Texture &t);
void setTeam(int i);
void moveX(int x);
int getTeam()const;
private:
int team;
};
J'ai également un objet "Graphisme" qui est la pour gérer une bonne partie de mon
merdier programme. Dans cet objet ce trouvent les vector qui contiennent les barres, bouton, et autres :
std::vector<Bar> v_bar;
std::vector<Ball> v_ball;
std::vector<Button> v_button;
DONC:
Si la texture de ma barre s'affiche très bien quand il est créer depuis le main, il n'en est pas de même pour ceux qui habitent
(ce n'est définitivement pas le bon terme ) ma classe graphique. Et c'est la le problème...
Je suppose que je ne vais pas mettre tout mon programme... Vous avez besoins de quoi pour m'aider?
dans le doute je rajoute le main :
int main()
{
sf::RenderWindow win(sf::VideoMode(400,600), "pong 0.10");
Graphics graph;
while(win.isOpen())
{
graph.treatEvent(win);
graph.receive();
if(graph.isRefreshNeeded())
{
win.clear(sf::Color(50,50,50));
graph.draw(win);
win.display();
graph.refreshIsDone();
}
}
return 0;
}
ainsi que les éléments de ma classe graphique :
class Graphics
{
public:
Graphics();
void treatEvent(sf::RenderWindow &win);
void receive();
bool isRefreshNeeded()const;
void refreshIsDone();
void draw(sf::RenderWindow &win);
private:
void changeTeam(int i);
void setPhase(int i);
void allClear();
sf::IpAddress ip;
sf::TcpListener listen;
sf::TcpSocket socket[3];
sf::Texture texture;
sf::Font font;
sf::String name;
sf::String names[4];
int nPlayer;
int cPlayer;
int phase;
bool refresh;
bool isServer;
bool clientConnected;
std::vector<Bar> v_bar;
std::vector<Ball> v_ball;
std::vector<Button> v_button;
};
merci d'avance