| 
									
										
										
										
											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-04-09 02:36:30 +00:00
										 |  |  |     virtual sf::Vector2f getForces(const Level& level) 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-10 03:10:27 +00:00
										 |  |  |     virtual sf::FloatRect getAABB() const; | 
					
						
							| 
									
										
										
										
											2016-04-01 20:44:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-09 13:32:42 +00:00
										 |  |  |     /**
 | 
					
						
							|  |  |  |      * Récupère le rayon du joueur | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     virtual float getRadius() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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-04-09 02:36:30 +00:00
										 |  |  |     virtual void draw(Level& 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 03:43:40 +00:00
										 |  |  |     virtual void activated(Level& level, 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 13:32:42 +00:00
										 |  |  |     /**
 | 
					
						
							|  |  |  |      * Récupère le type de collision des joueurs | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     virtual CollisionType getCollisionType() 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-10 04:53:45 +00:00
										 |  |  |     /**
 | 
					
						
							|  |  |  |      * Sauvegarde le joueur dans le fichier donné | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     virtual void save(std::ofstream& file) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-09 01:53:17 +00:00
										 |  |  |     /**
 | 
					
						
							|  |  |  |      * Met à jour la position de l'objet selon sa | 
					
						
							|  |  |  |      * vitesse actuelle | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-04-09 02:36:30 +00:00
										 |  |  |     virtual void updatePosition(); | 
					
						
							| 
									
										
										
										
											2016-03-19 21:59:44 +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
 |