From b943a268ae6f835b3425350f3c0d117d0e623b47 Mon Sep 17 00:00:00 2001 From: Jonathan Trottier Date: Mon, 23 Oct 2023 15:43:55 -0400 Subject: [PATCH] barre de vie --- SQCSim-common/player.cpp | 18 +++++++++++++++++- SQCSim-common/player.h | 3 +++ SQCSim2021/engine.cpp | 12 +++++++++++- SQCSim2021/engine.h | 3 +++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/SQCSim-common/player.cpp b/SQCSim-common/player.cpp index 9fe810c..c963849 100644 --- a/SQCSim-common/player.cpp +++ b/SQCSim-common/player.cpp @@ -4,7 +4,7 @@ Player::Player(const Vector3f& position, float rotX, float rotY) : m_position(position), m_rotX(rotX), m_rotY(rotY) { m_velocity = Vector3f(0, 0, 0); m_airborne = true; - m_hp = 0.75f; //TODO: Remettre à 1.0f + m_hp = 1.0f; //TODO: Remettre à 1.0f m_username = "Zelda Bee-Bop56"; } @@ -206,3 +206,19 @@ void Player::Teleport(int& x, int& z) { m_position.x -= x * CHUNK_SIZE_X; m_position.z -= z * CHUNK_SIZE_Z; } + +void Player::InflictDamage(Player playerHit, float hitPoints) +{ + + playerHit.m_hp -= hitPoints; + + + if (playerHit.GetHP() <= 0) + { // Quand l'autre joueur est mort. + + + + } + + +} diff --git a/SQCSim-common/player.h b/SQCSim-common/player.h index e439fa2..79e0008 100644 --- a/SQCSim-common/player.h +++ b/SQCSim-common/player.h @@ -26,6 +26,9 @@ public: float GetHP() const; void Teleport(int& x, int& z); + + void InflictDamage(Player playerHit, float hitPoints); + private: Vector3f m_position; Vector3f m_velocity; diff --git a/SQCSim2021/engine.cpp b/SQCSim2021/engine.cpp index f44eb96..f427a29 100644 --- a/SQCSim2021/engine.cpp +++ b/SQCSim2021/engine.cpp @@ -131,6 +131,12 @@ void Engine::LoadResource() { void Engine::UnloadResource() {} +void Engine::InstantDamage() +{ + m_player.InflictDamage(m_player, 0.10f); + m_damage = false; +} + void Engine::SystemNotification(std::string systemLog) { std::string message = ""; @@ -536,7 +542,8 @@ void Engine::Render(float elapsedTime) { m_wrenderer.UpdateWorld(&m_world, m_player.GetPosition(), m_blockinfo); if (m_isSkybox) m_skybox.Render(skybox); - + if (m_damage) + InstantDamage(); ProcessNotificationQueue(); DrawHud(elapsedTime, bloc); @@ -604,6 +611,9 @@ void Engine::KeyPressEvent(unsigned char key) { break; case 8: // I - Ignorer break; + case 9: // J - InstantDamage + m_damage = true; + break; case 17: // R - Ignorer break; case 19: // T - Ignorer diff --git a/SQCSim2021/engine.h b/SQCSim2021/engine.h index fa3a088..e6584eb 100644 --- a/SQCSim2021/engine.h +++ b/SQCSim2021/engine.h @@ -43,6 +43,7 @@ private: bool LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps = true, bool stopOnError = true); + void InstantDamage(); void SystemNotification(std::string systemLog); void KillNotification(Player killer, Player killed); void DisplayNotification(std::string message); @@ -83,6 +84,8 @@ private: int m_renderCount = 0; int m_countdown = COUNTDOWN; + bool m_damage = false; + bool m_wireframe = false; bool m_isSkybox = true; bool m_block = false;