From c59d6eac0e70e338020eb16616b4c2956ef3b0eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Mon, 11 Apr 2016 23:29:59 +0200 Subject: [PATCH] =?UTF-8?q?Rotation=20correcte=20des=20balles=20selon=20la?= =?UTF-8?q?=20gravit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/player.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/player.cpp b/src/player.cpp index 5952cdb..3237a58 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -3,6 +3,7 @@ #include "game.hpp" #include "block.hpp" #include "constants.hpp" +#include #include const unsigned int Player::TYPE_ID = 1; @@ -85,10 +86,11 @@ void Player::draw(Level& level) { // on fait tourner le sprite selon la différence de position if (previous_position != sf::Vector2f(0, 0)) { - sprite.rotate( - (getPosition() - previous_position).x * - level.getRightDirection().x * .015f - ); + sf::Vector2f right_dir = level.getRightDirection(); + sf::Vector2f diff = getPosition() - previous_position; + + float rotate = (right_dir.x * diff.x + right_dir.y * diff.y) * 3 / 200; + sprite.rotate(rotate); } previous_position = getPosition();