le Header de ma classe Arme au complet:
#ifndef ARME_H_INCLUDED
#define ARME_H_INCLUDED
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <iostream>
#include "Behavior.h"
class Arme : public Behavior
{
protected:
std::string m_noms;
sf::Sound m_sonArme;
sf::SoundBuffer m_bruitArme;
public:
Arme();
void tirer();
};
#endif // ARME_H_INCLUDED
le fichier source de ma Clase Arme:
#include <iostream>
#include "Arme.h"
using namespace sf;
Arme::Arme()
{
m_bruitArme.loadFromFile("sons/bruitage/gunshot5.wav");
m_sonArme.setBuffer(m_bruitArme);
std::cout << "chargement son dans objet " << std::endl;
}
void Arme::tirer()
{
std::cout << "le pistolet a tirer " << std::endl;
m_sonArme.play();
}
et ma fonction ecranJeux :
#include <iostream>
#include <SFML/Graphics.hpp>
#include "ecranJeux.h"
#include "../Class/Behavior.h"
#include "../Class/Personnage.h"
#include "../Class/CurseurSouris.h"
#include "../Class/Arme.h"
using namespace sf;
int ecranJeux()
{
//creation de la la fenetre fenetreJeux
RenderWindow fenetreJeux(VideoMode(1280,720),"Aventureland");
// chargement des texture
Texture viseurPistoler;
viseurPistoler.loadFromFile("images/sprite/viseur.png");
viseurPistoler.setSmooth(true);
// chargement des BufferSon
// création des objet et parametrage
Arme pistolet;
Personnage jrod;
jrod.setArme(pistolet);
CurseurSouris viseur;
viseur.setTexture(viseurPistoler);
viseur.setOrigin(37, 37);
viseur.setColor(Color::Red);
//creation de objet evenement
Event event;
while(fenetreJeux.isOpen())
{
while(fenetreJeux.pollEvent(event))
{
switch(event.type)
{
case Event::Closed:
fenetreJeux.close();
break;
case Event::MouseMoved:
viseur.updatePosition(fenetreJeux);
case Event::MouseButtonPressed:
if(event.mouseButton.button == Mouse::Left)
pistolet.tirer();
if(event.mouseButton.button == Mouse::Right)
jrod.tirerAvecArme();
default :
break;
}
}
fenetreJeux.clear(Color::Blue);
fenetreJeux.draw(viseur);
fenetreJeux.display();
}
return 0;
}
le ficher source de ma classe Personnage :
void Personnage::tirerAvecArme()
{
std::cout << "le personnage va essayer de tirer " << std::endl;
m_arme->tirer();
}
le header complet de ma classe Personnage :
#ifndef PERSONNAGE_H_INCLUDED
#define PERSONNAGE_H_INCLUDED
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <string>
#include "Behavior.h"
#include "Arme.h"
class Personnage : public Behavior
{
protected:
std::string m_noms;
Arme *m_arme;
public:
Personnage();
void setArme(Arme seletionArme);
void tirerAvecArme();
};
#endif // PERSONNAGE_H_INCLUDED
Si il manque des élément dit lequel, je vous les fournirait .
quand je clic directement avec le clic gauche de la souris tout passe comme prévu mais pas avec le clic droit.