Bonjour, je suis en train de réécrire un programme réalisé il y a quelques jours pour qu'il soit plus performant, j'ai donc voulu utiliser les pointeurs mais quelques problèmes sont arrivés

Dans Player.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
class Player
{
	public:
		void Init();
		void Update(int VelocityX, int VelocityY);
		int PlayerPosX, PlayerPosY;
};
Dans Player.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include "Player.h"
 
void Player::Init()
{
	PlayerPosX = 0;
	PlayerPosY = 0;
}
 
void Player::Update(int VelocityX, int VelocityY)
{
	PlayerPosX += VelocityX;
	PlayerPosY += VelocityY;
}
Dans EventsManager.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#include <SFML\Graphics.hpp>
#include "Player.h"
class EventsManager
{
public:
	void Input(sf::Event Event, sf::RenderWindow *window, Player *Player);
};
Dans EventsManager.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include "EventsManager.h"
 
void EventsManager::Input(sf::Event Event, sf::RenderWindow *window, Player *Player)
{
	if (Event.type == sf::Event::Closed)
		window->close();
	else if (Event.type == sf::Keyboard::isKeyPressed(sf::Keyboard::S))
		Player->PlayerPosX += 5;
}
Dans Application/h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#include <SFML\Graphics.hpp>
#include "Player.h"
#include "EventsManager.h"
#include <iostream>
 
class Application
{
	public:
		void Init();
		void Run();
		void Update();
 
	private:
		int Win_WIDTH, Win_HEIGHT;
		sf::RenderWindow GameWindow;
		sf::Event GameEvent;
		EventsManager GameEvents;
		Player GamePlayer;
};
Dans Application.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
#include "Application.h"
 
void Application::Init()
{
	//Create the window
	Win_WIDTH = 1920;
	Win_HEIGHT = 1080;
	GameWindow.create(sf::VideoMode(Win_WIDTH, Win_HEIGHT), "TwoDCraft!", sf::Style::Default);
	GameWindow.setFramerateLimit(60);
	GameWindow.setPosition(sf::Vector2i(0, 0));	
 
	//Init the player
	GamePlayer.Init();
}
 
void Application::Run()
{
	while (GameWindow.isOpen())
	{
		while (GameWindow.pollEvent(GameEvent))
		{
			GameEvents.Input(GameEvent, &GameWindow, &GamePlayer);
		}
	}
}
Et dans le main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include "Application.h"
 
int main()
{
	Application App;
	App.Init();
	App.Run();
	return 0;
}
Le programme utilise SFML, peut être aurai je dût placer cette discussion dans les bibilothèques mais le problème ne concerne pas SFML. Voici mon problème : La méthode Input de EventsManager n'arrive pas à accéder et à modifier PlayerPosX
Voici le log :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
1>------ Début de la génération*: Projet*: TwoDCraftReWork, Configuration*: Debug Win32 ------
1>  main.cpp
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\player.h(2): error C2011: 'Player'*: redéfinition du type 'class'
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\player.h(2): note: voir la déclaration de 'Player'
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.h(20): error C2079: 'Application::GamePlayer' utilise une class de 'Player' non défini
1>  EventsManager.cpp
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\eventsmanager.cpp(7): warning C4805: '=='*: mélange risqué de type 'sf::Event::EventType' et de type 'bool' dans l'opération
1>  Application.cpp
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\player.h(2): error C2011: 'Player'*: redéfinition du type 'class'
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\player.h(2): note: voir la déclaration de 'Player'
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.h(20): error C2079: 'Application::GamePlayer' utilise une class de 'Player' non défini
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(13): error C2228: la partie gauche de '.Init' doit avoir un class/struct/union
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(13): note: le type est 'int'
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(16): error C2228: la partie gauche de '.PlayerPosX' doit avoir un class/struct/union
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(16): note: le type est 'int'
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(16): error C2228: la partie gauche de '.PlayerPosY' doit avoir un class/struct/union
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(16): note: le type est 'int'
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(25): error C2664: 'void EventsManager::Input(sf::Event,sf::RenderWindow *,Player *)'*: impossible de convertir l'argument 3 de 'int *' en 'Player *'
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(25): note: Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(35): error C2228: la partie gauche de '.PlayerPosX' doit avoir un class/struct/union
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(35): note: le type est 'int'
1>f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(35): error C2228: la partie gauche de '.PlayerPosY' doit avoir un class/struct/union
1>  f:\documents\programmation\visual studio 2015\projects\twodcraftrework\twodcraftrework\application.cpp(35): note: le type est 'int'
1>  Génération de code en cours...
========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
J'espère que vous aurez compris mon problème et je vous remercie d'avance de votre aide
Bonne journée