From 44ae6475e33185bf547d918da140b09f15f6b983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Mon, 11 Apr 2016 19:35:58 +0200 Subject: [PATCH] Correction du comportement du bloc switch --- include/switch_block.hpp | 3 +++ res/levels/editor_result.dat | Bin 247 -> 502 bytes src/switch_block.cpp | 10 ++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/switch_block.hpp b/include/switch_block.hpp index 91d5115..15031e9 100644 --- a/include/switch_block.hpp +++ b/include/switch_block.hpp @@ -17,6 +17,9 @@ protected: */ static void init(std::ifstream& file, Object::Ptr object); +public: + sf::Time last_activation; + public: /** * Identifiant unique du type "bloc changeur" diff --git a/res/levels/editor_result.dat b/res/levels/editor_result.dat index 26113b5e7df62821c8f7af31443902d04dc5ffd2..35838b290edf61148080eb2229baf9ebb6d5e7c6 100644 GIT binary patch literal 502 zcmY+Au@S;B3`IXajxjh&wur(26l_32K?7B&HHtThN69FB$+mp)UF>J+OIH4Ee&GIH zey`_p`Mm7_*ZBx&sUPNX7O89}*EIoB7@7#WqFtHk36H@fPTU(oJL%L3(n*6PCVk3getLastActivator().lock().get() != this) { + // on échange la polarité de l'objet en contact, si le dernier + // objet touché par la balle n'est pas ce bloc et si un temps + // d'une seconde est passé + sf::Time current_time = game.getManager().getCurrentTime(); + + if (current_time - last_activation >= sf::seconds(1) && + object->getLastActivator().lock() != shared_from_this()) { + last_activation = current_time; object->setCharge(-object->getCharge()); } }