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