Amélioration de l'algo pour la force d'attraction
This commit is contained in:
parent
733d4540ce
commit
d89ac6d0e5
14
engine.cpp
14
engine.cpp
|
@ -67,10 +67,10 @@ void Engine::update(float delta) {
|
||||||
for (int i = 0; i < balls.size(); i++) {
|
for (int i = 0; i < balls.size(); i++) {
|
||||||
sf::Vector2f forces(0, 0);
|
sf::Vector2f forces(0, 0);
|
||||||
|
|
||||||
// ajout de la force de gravité
|
// force de gravité
|
||||||
forces += sf::Vector2f(0, Engine::GRAVITY);
|
forces += sf::Vector2f(0, Engine::GRAVITY);
|
||||||
|
|
||||||
// déplacement de la balle
|
// déplacement de la balle après appui sur les touches de direction
|
||||||
if (goLeftKey) {
|
if (goLeftKey) {
|
||||||
forces += sf::Vector2f(-Engine::MOVE, 0);
|
forces += sf::Vector2f(-Engine::MOVE, 0);
|
||||||
}
|
}
|
||||||
|
@ -79,14 +79,18 @@ void Engine::update(float delta) {
|
||||||
forces += sf::Vector2f(Engine::MOVE, 0);
|
forces += sf::Vector2f(Engine::MOVE, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// force d'attraction
|
// force d'attraction entre les balles et les blocs
|
||||||
for (int j = 0; j < balls.size(); j++) {
|
for (int j = 0; j < balls.size(); j++) {
|
||||||
if (i != j) {
|
if (i != j && balls[i].getCharge() && balls[j].getCharge()) {
|
||||||
sf::Vector2f attraction(balls[i].getPosition() - balls[j].getPosition());
|
sf::Vector2f attraction(balls[i].getPosition() - balls[j].getPosition());
|
||||||
float distanceSquared = attraction.x * attraction.x + attraction.y * attraction.y;
|
float distanceSquared = attraction.x * attraction.x + attraction.y * attraction.y;
|
||||||
|
|
||||||
|
// normalisation du vecteur direction qui porte la force d'attraction
|
||||||
attraction /= std::sqrt(distanceSquared);
|
attraction /= std::sqrt(distanceSquared);
|
||||||
attraction *= Engine::ATTRACTION * ((balls[i].getCharge() * balls[j].getCharge()) / distanceSquared);
|
attraction *= Engine::ATTRACTION * (
|
||||||
|
(balls[i].getCharge() * balls[j].getCharge()) /
|
||||||
|
distanceSquared
|
||||||
|
);
|
||||||
|
|
||||||
forces += attraction;
|
forces += attraction;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue