| 
									
										
										
										
											2016-03-25 17:40:39 +00:00
										 |  |  | #ifndef __PTF_PLAYER_HPP__
 | 
					
						
							|  |  |  | #define __PTF_PLAYER_HPP__
 | 
					
						
							| 
									
										
										
										
											2016-03-04 15:29:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <SFML/Graphics.hpp>
 | 
					
						
							| 
									
										
										
										
											2016-03-15 16:08:21 +00:00
										 |  |  | #include "object.hpp"
 | 
					
						
							| 
									
										
										
										
											2016-03-04 15:29:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-25 17:40:39 +00:00
										 |  |  | class Player : public Object { | 
					
						
							| 
									
										
										
										
											2016-03-15 16:08:21 +00:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2016-04-08 22:26:47 +00:00
										 |  |  |     mutable sf::CircleShape sprite; | 
					
						
							| 
									
										
										
										
											2016-03-25 17:40:39 +00:00
										 |  |  |     unsigned int player_number; | 
					
						
							| 
									
										
										
										
											2016-03-10 20:47:19 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-15 16:08:21 +00:00
										 |  |  | protected: | 
					
						
							| 
									
										
										
										
											2016-03-08 18:50:21 +00:00
										 |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Calcule les forces appliquées au joueur | 
					
						
							| 
									
										
										
										
											2016-03-08 18:50:21 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-03-30 12:03:36 +00:00
										 |  |  |     virtual sf::Vector2f getForces(const Manager& manager, const std::vector<ObjectPtr>& objects) const; | 
					
						
							| 
									
										
										
										
											2016-03-04 15:29:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2016-03-31 17:45:57 +00:00
										 |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Identifiant unique du type "joueur" | 
					
						
							| 
									
										
										
										
											2016-03-31 17:45:57 +00:00
										 |  |  |      */ | 
					
						
							|  |  |  |     static const unsigned int TYPE_ID; | 
					
						
							| 
									
										
										
										
											2016-04-01 20:44:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-02 13:18:29 +00:00
										 |  |  |     Player(); | 
					
						
							| 
									
										
										
										
											2016-03-28 18:02:23 +00:00
										 |  |  |     virtual ~Player(); | 
					
						
							| 
									
										
										
										
											2016-03-09 19:01:15 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-06 11:54:03 +00:00
										 |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Clone ce joueur en un joueur avec les mêmes propriétés | 
					
						
							| 
									
										
										
										
											2016-04-06 11:54:03 +00:00
										 |  |  |      */ | 
					
						
							|  |  |  |     virtual ObjectPtr clone() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-01 20:44:10 +00:00
										 |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Récupère la boîte englobante du joueur | 
					
						
							| 
									
										
										
										
											2016-04-01 20:44:10 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |     virtual std::unique_ptr<sf::FloatRect> getAABB() const; | 
					
						
							| 
									
										
										
										
											2016-04-01 20:44:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-08 17:07:21 +00:00
										 |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Dessine le joueur dans la fenêtre donnée | 
					
						
							| 
									
										
										
										
											2016-03-08 17:07:21 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-03-28 15:23:47 +00:00
										 |  |  |     virtual void draw(Manager& manager); | 
					
						
							| 
									
										
										
										
											2016-04-06 11:54:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-03 18:36:07 +00:00
										 |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Appelé lorsque le joueur est activé par un objet | 
					
						
							| 
									
										
										
										
											2016-04-03 18:36:07 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |     virtual void activated(Object& object); | 
					
						
							| 
									
										
										
										
											2016-03-04 15:29:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-13 18:07:35 +00:00
										 |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Récupère l'identifiant de type des joueurs | 
					
						
							| 
									
										
										
										
											2016-03-13 18:07:35 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |     virtual unsigned int getTypeId() const; | 
					
						
							| 
									
										
										
										
											2016-03-15 21:00:03 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Chargement du joueur depuis le fichier donné | 
					
						
							| 
									
										
										
										
											2016-03-15 21:00:03 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |     static ObjectPtr load(std::ifstream& file); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							|  |  |  |      * Met à jour la position de l'objet selon sa | 
					
						
							|  |  |  |      * vitesse actuelle | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     virtual void updatePosition(float delta); | 
					
						
							| 
									
										
										
										
											2016-03-19 21:59:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |      * Renvoie le rayon de la balle du joueur | 
					
						
							| 
									
										
										
										
											2016-03-19 21:59:44 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-03-28 15:23:47 +00:00
										 |  |  |     float getRadius() const; | 
					
						
							| 
									
										
										
										
											2016-03-25 19:13:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-25 17:40:39 +00:00
										 |  |  |     /**
 | 
					
						
							|  |  |  |      * Renvoie le numéro du joueur | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-03-28 15:23:47 +00:00
										 |  |  |     unsigned int getPlayerNumber() const; | 
					
						
							| 
									
										
										
										
											2016-03-25 17:40:39 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							|  |  |  |      * Modifie le numéro du joueur | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     void setPlayerNumber(unsigned int set_number); | 
					
						
							| 
									
										
										
										
											2016-03-04 15:29:31 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |