Centralisation des constantes dans un en-tête constants
This commit is contained in:
		
							parent
							
								
									cb0dd83817
								
							
						
					
					
						commit
						a25a637a35
					
				|  | @ -16,9 +16,6 @@ protected: | ||||||
|      */ |      */ | ||||||
|     virtual sf::Vector2f getForces(EngineState& state); |     virtual sf::Vector2f getForces(EngineState& state); | ||||||
| 
 | 
 | ||||||
|     static constexpr float ATTRACTION = 25000; |  | ||||||
|     static constexpr float MOVE = 100; |  | ||||||
| 
 |  | ||||||
| public: | public: | ||||||
|     Ball(float x, float y); |     Ball(float x, float y); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,8 +12,6 @@ protected: | ||||||
|     sf::RectangleShape shape; |     sf::RectangleShape shape; | ||||||
| 
 | 
 | ||||||
| public: | public: | ||||||
|     static constexpr float GRID = 32; |  | ||||||
| 
 |  | ||||||
|     Block(float x, float y); |     Block(float x, float y); | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,33 @@ | ||||||
|  | #ifndef __PTF_CONSTANTS_HPP__ | ||||||
|  | #define __PTF_CONSTANTS_HPP__ | ||||||
|  | 
 | ||||||
|  | namespace Constants { | ||||||
|  |     /**
 | ||||||
|  |      * Constante d'attraction. Utilisée dans la formule | ||||||
|  |      * pour le calcul de l'attraction coulombienne entre | ||||||
|  |      * deux objets | ||||||
|  |      */ | ||||||
|  |     static constexpr float ATTRACTION = 25000; | ||||||
|  | 
 | ||||||
|  |     /**
 | ||||||
|  |      * Constante de déplacement. Définit la quantité de | ||||||
|  |      * mouvement qui est donnée à un objet lorsqu'il | ||||||
|  |      * est manipulé manuellement par le joueur | ||||||
|  |      */ | ||||||
|  |     static constexpr float MOVE = 100; | ||||||
|  | 
 | ||||||
|  |     /**
 | ||||||
|  |      * Constante de gravité. Utilisée dans la formule | ||||||
|  |      * pour calculer la force de gravité appliquée | ||||||
|  |      * uniformément vers le bas de la fenêtre sur tous | ||||||
|  |      * les objets | ||||||
|  |      */ | ||||||
|  |     static constexpr float GRAVITY = 20; | ||||||
|  | 
 | ||||||
|  |     /**
 | ||||||
|  |      * Taille de la grille des blocs en pixels | ||||||
|  |      */ | ||||||
|  |     static constexpr float GRID = 32; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
|  | @ -19,8 +19,6 @@ protected: | ||||||
|      */ |      */ | ||||||
|     virtual sf::Vector2f getForces(EngineState& state); |     virtual sf::Vector2f getForces(EngineState& state); | ||||||
| 
 | 
 | ||||||
|     static constexpr float GRAVITY = 20; |  | ||||||
| 
 |  | ||||||
| public: | public: | ||||||
|     PhysicsObject(float x, float y); |     PhysicsObject(float x, float y); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| #include "ball.hpp" | #include "ball.hpp" | ||||||
|  | #include "constants.hpp" | ||||||
| 
 | 
 | ||||||
| Ball::Ball(float x, float y) : PhysicsObject(x, y), shape(10 * mass) { | Ball::Ball(float x, float y) : PhysicsObject(x, y), shape(10 * mass) { | ||||||
|     shape.setOrigin(sf::Vector2f(10 * mass, 10 * mass)); |     shape.setOrigin(sf::Vector2f(10 * mass, 10 * mass)); | ||||||
|  | @ -35,11 +36,11 @@ sf::Vector2f Ball::getForces(EngineState& state) { | ||||||
| 
 | 
 | ||||||
|     // déplacement de la balle après appui sur les touches de direction
 |     // déplacement de la balle après appui sur les touches de direction
 | ||||||
|     if (state.keys[sf::Keyboard::Left]) { |     if (state.keys[sf::Keyboard::Left]) { | ||||||
|         forces += sf::Vector2f(-Ball::MOVE, 0); |         forces += sf::Vector2f(-Constants::MOVE, 0); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (state.keys[sf::Keyboard::Right]) { |     if (state.keys[sf::Keyboard::Right]) { | ||||||
|         forces += sf::Vector2f(Ball::MOVE, 0); |         forces += sf::Vector2f(Constants::MOVE, 0); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // force d'attraction entre les balles et les blocs chargés
 |     // force d'attraction entre les balles et les blocs chargés
 | ||||||
|  | @ -66,7 +67,7 @@ sf::Vector2f Ball::getForces(EngineState& state) { | ||||||
|             // normalisation du vecteur direction qui porte
 |             // normalisation du vecteur direction qui porte
 | ||||||
|             // la force d'attraction, puis application de la norme
 |             // la force d'attraction, puis application de la norme
 | ||||||
|             attraction /= std::sqrt(distanceSquared); |             attraction /= std::sqrt(distanceSquared); | ||||||
|             attraction *= Ball::ATTRACTION * ( |             attraction *= Constants::ATTRACTION * ( | ||||||
|                 (charge * attractive->getCharge()) / |                 (charge * attractive->getCharge()) / | ||||||
|                 distanceSquared |                 distanceSquared | ||||||
|             ); |             ); | ||||||
|  |  | ||||||
|  | @ -1,7 +1,8 @@ | ||||||
| #include "block.hpp" | #include "block.hpp" | ||||||
|  | #include "constants.hpp" | ||||||
| 
 | 
 | ||||||
| Block::Block(float x, float y) : Object(x, y), shape(sf::Vector2f(Block::GRID, Block::GRID)) { | Block::Block(float x, float y) : Object(x, y), shape(sf::Vector2f(Constants::GRID, Constants::GRID)) { | ||||||
|     shape.setOrigin(sf::Vector2f(Block::GRID / 2, Block::GRID / 2)); |     shape.setOrigin(sf::Vector2f(Constants::GRID / 2, Constants::GRID / 2)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Block::draw(sf::RenderWindow& window) { | void Block::draw(sf::RenderWindow& window) { | ||||||
|  | @ -30,9 +31,9 @@ void Block::update(EngineState& state) { | ||||||
| 
 | 
 | ||||||
| std::unique_ptr<sf::FloatRect> Block::getAABB() { | std::unique_ptr<sf::FloatRect> Block::getAABB() { | ||||||
|     return std::unique_ptr<sf::FloatRect>(new sf::FloatRect( |     return std::unique_ptr<sf::FloatRect>(new sf::FloatRect( | ||||||
|         position.x - Block::GRID / 2, |         position.x - Constants::GRID / 2, | ||||||
|         position.y - Block::GRID / 2, |         position.y - Constants::GRID / 2, | ||||||
|         Block::GRID, Block::GRID |         Constants::GRID, Constants::GRID | ||||||
|     )); |     )); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										23
									
								
								src/main.cpp
								
								
								
								
							
							
						
						
									
										23
									
								
								src/main.cpp
								
								
								
								
							|  | @ -1,23 +1,24 @@ | ||||||
| #include "ball.hpp" | #include "ball.hpp" | ||||||
| #include "block.hpp" | #include "block.hpp" | ||||||
| #include "engine.hpp" | #include "engine.hpp" | ||||||
|  | #include "constants.hpp" | ||||||
| #include <iostream> | #include <iostream> | ||||||
| 
 | 
 | ||||||
| int main() { | int main() { | ||||||
|     Engine engine; |     Engine engine; | ||||||
| 
 | 
 | ||||||
|     Ball ball1(5 * Block::GRID, 1 * Block::GRID); |     Ball ball1(5 * Constants::GRID, 1 * Constants::GRID); | ||||||
|     Ball ball2(7 * Block::GRID, 1 * Block::GRID); |     Ball ball2(7 * Constants::GRID, 1 * Constants::GRID); | ||||||
| 
 | 
 | ||||||
|     Block block1(2 * Block::GRID, 7 * Block::GRID); |     Block block1(2 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block2(3 * Block::GRID, 7 * Block::GRID); |     Block block2(3 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block3(4 * Block::GRID, 7 * Block::GRID); |     Block block3(4 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block4(5 * Block::GRID, 7 * Block::GRID); |     Block block4(5 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block5(6 * Block::GRID, 7 * Block::GRID); |     Block block5(6 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block6(7 * Block::GRID, 7 * Block::GRID); |     Block block6(7 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block7(8 * Block::GRID, 7 * Block::GRID); |     Block block7(8 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block8(9 * Block::GRID, 7 * Block::GRID); |     Block block8(9 * Constants::GRID, 7 * Constants::GRID); | ||||||
|     Block block9(10 * Block::GRID, 7 * Block::GRID); |     Block block9(10 * Constants::GRID, 7 * Constants::GRID); | ||||||
| 
 | 
 | ||||||
|     ball1.setCharge(-2); |     ball1.setCharge(-2); | ||||||
|     ball2.setCharge(-2); |     ball2.setCharge(-2); | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| #include "physics_object.hpp" | #include "physics_object.hpp" | ||||||
|  | #include "constants.hpp" | ||||||
| 
 | 
 | ||||||
| PhysicsObject::PhysicsObject(float x, float y) : | PhysicsObject::PhysicsObject(float x, float y) : | ||||||
|     Object(x, y), mass(1), accelLine(sf::LinesStrip, 2), |     Object(x, y), mass(1), accelLine(sf::LinesStrip, 2), | ||||||
|  | @ -32,7 +33,7 @@ sf::Vector2f PhysicsObject::getForces(EngineState& state) { | ||||||
|     sf::Vector2f forces(0, 0); |     sf::Vector2f forces(0, 0); | ||||||
| 
 | 
 | ||||||
|     // force de gravité
 |     // force de gravité
 | ||||||
|     forces += sf::Vector2f(0, PhysicsObject::GRAVITY); |     forces += sf::Vector2f(0, Constants::GRAVITY); | ||||||
| 
 | 
 | ||||||
|     return forces; |     return forces; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue