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:
Mattéo Delabre 2016-03-08 19:49:28 +01:00
parent 0ea9479a2a
commit ad39ccf563
2 changed files with 45 additions and 0 deletions

18
physics_object.cpp Normal file
View File

@ -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;
}

27
physics_object.hpp Normal file
View File

@ -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