Spécialisation de Object en PhysicsObject
La sous-classe PhysicsObject définit des attributs propres aux éléments physiques du jeu (vitesse, masse, calcul des forces)
This commit is contained in:
		
							parent
							
								
									0ea9479a2a
								
							
						
					
					
						commit
						ad39ccf563
					
				|  | @ -0,0 +1,18 @@ | |||
| #include "physics_object.hpp" | ||||
| 
 | ||||
| void PhysicsObject::update(Engine engine, float delta) { | ||||
|     sf::Vector2f forces = getForces(engine, objects); | ||||
| 
 | ||||
|     // TODO: intégrer le vecteur force dans la vitesse puis la position
 | ||||
| } | ||||
| 
 | ||||
| sf::Vector2f PhysicsObject::getForces(State state) { | ||||
|     sf::Vector2f forces(0, 0); | ||||
| 
 | ||||
|     // force de gravité
 | ||||
|     forces += sf::Vector2f(0, Engine::GRAVITY); | ||||
| 
 | ||||
|     // TODO: collisions entre objets
 | ||||
| 
 | ||||
|     return forces; | ||||
| } | ||||
|  | @ -0,0 +1,27 @@ | |||
| #ifndef PTF_OBJECT_HPP | ||||
| #define PTF_OBJECT_HPP | ||||
| 
 | ||||
| #include <SFML/Graphics.hpp> | ||||
| #include <iostream> | ||||
| #include "state.hpp" | ||||
| #include "object.hpp" | ||||
| 
 | ||||
| class PhysicsObject : class Object { | ||||
| protected: | ||||
|     sf::Vector2f velocity; | ||||
|     float mass; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Calcule les forces appliquées à l'objet | ||||
|      */ | ||||
|     sf::Vector2f getForces(State state); | ||||
| 
 | ||||
| public: | ||||
|     /**
 | ||||
|      * Met à jour la physique de l'objet juste avant le dessin d'une frame | ||||
|      * Reçoit l'état du moteur et le temps écoulé depuis la dernière frame | ||||
|      */ | ||||
|     void update(State state, float delta); | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
		Loading…
	
		Reference in New Issue