Voila voila après quelque petit recherche je suis parvenu a faire ça
Bouton.cpp
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
//#include <Box2D/Box2D.h>
#include <iostream>
#include "Bouton.h"
sf::Texture TextureBouton[15];
sf::Sprite SpriteBouton[15];
Bouton::Bouton(char NomPGN[32],int NumeroBouton, float OrigineX, float OrigineY, float PositionX, float PositionY)
{
TextureBouton[NumeroBouton].loadFromFile(NomPGN);
SpriteBouton[NumeroBouton].setTexture(TextureBouton[NumeroBouton]);
SpriteBouton[NumeroBouton].setOrigin(sf::Vector2f(OrigineX, OrigineY));
SpriteBouton[NumeroBouton].setPosition(sf::Vector2f(PositionX, PositionY));
}
sf::Sprite Bouton::getSpriteBouton(int NumeroBouton)
{
return SpriteBouton[NumeroBouton];
}
Bouton.h
#ifndef DEF_BOUTON
#define DEF_BOUTON
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
//#include <Box2D/Box2D.h>
#include <iostream>
class Bouton
{
public:
Bouton(char NomPGN[32], int NumeroBouton, float OrigineX, float OrigineY, float PositionX, float PositionY);
sf::Sprite getSpriteBouton(int NumeroBouton);
};
#endif
Source.cppµ
#include<SFML/Graphics.hpp>
#include<iostream>
#include "Menu.h"
#include "Bouton.h"
int main()
{
//Varibale
int NumeroMenu=1;
//Creation Fenetre
sf::RenderWindow wmenu(sf::VideoMode(1366, 768), "Menu", sf::Style::Default);
//Objet
Menu Menu("Fond.png");
Bouton BoutonPlay("BoutonPlay.png",0, 176, 0, 683, 200);
Bouton BoutonOption("BoutonOption.png",1, 153, 0, 683, 340);
Bouton BoutonExit("BoutonExit.png", 2,153, 0, 683, 467);
while (wmenu.isOpen())
{
sf::Event event;
while (wmenu.pollEvent(event))
{
if (event.type == sf::Event::Closed)
wmenu.close();
}
switch (NumeroMenu)
{
case 1: //Menu de base
wmenu.clear();
wmenu.draw(Menu.getSpriteFond());
wmenu.draw(BoutonPlay.getSpriteBouton(0));
wmenu.draw(BoutonOption.getSpriteBouton(1));
wmenu.draw(BoutonExit.getSpriteBouton(2));
wmenu.display();
break;
case 2: //Play
break;
case 3: //Option
break;
default:
std::cout << "ERROR";
break;
}
}
return 0;
}
Et ça fonctionne mais je sais pas si c'est optimiser