From 9426af39e790a144a547ad69ecd54768896a9a2c Mon Sep 17 00:00:00 2001 From: Claudel-D-Roy <112507354+Claudel-D-Roy@users.noreply.github.com> Date: Tue, 14 Nov 2023 22:17:00 -0500 Subject: [PATCH] push triste du quad qui marche pas --- SQCSim2021/engine.cpp | 28 +++++++-- SQCSim2021/engine.h | 4 ++ SQCSim2021/remoteplayer.cpp | 122 ++++++++++++++++++++++++++++-------- SQCSim2021/remoteplayer.h | 3 - 4 files changed, 123 insertions(+), 34 deletions(-) diff --git a/SQCSim2021/engine.cpp b/SQCSim2021/engine.cpp index 2b9190c..6fcf7b0 100644 --- a/SQCSim2021/engine.cpp +++ b/SQCSim2021/engine.cpp @@ -401,6 +401,10 @@ void Engine::LoadResource() { LoadTexture(MenuOptionsTexture, MENU_ITEM_PATH "test.png"); LoadTexture(MenuStartTexture, MENU_ITEM_PATH "BasicPlay.png"); + + + + TextureAtlas::TextureIndex texDirtIndex = m_textureAtlas.AddTexture(TEXTURE_PATH "metal3.png"); TextureAtlas::TextureIndex texIceIndex = m_textureAtlas.AddTexture(TEXTURE_PATH "metal2.png"); TextureAtlas::TextureIndex texGrassIndex = m_textureAtlas.AddTexture(TEXTURE_PATH "grass.png"); @@ -956,6 +960,7 @@ void Engine::PrintText(float x, float y, const std::string& t, float charSizeMul } } + int Engine::GetFps(float elapsedTime) const { return 1 / elapsedTime; } int Engine::GetCountdown(float elapsedTime) { @@ -996,6 +1001,7 @@ void Engine::Render(float elapsedTime) { Transformation all; Transformation skybox; + Transformation remotePlayer; Vector3f vstep; // Transformations initiales @@ -1026,15 +1032,16 @@ void Engine::Render(float elapsedTime) { pollTime = 0; } - m_player.ApplyTransformation(all); + RenderRemotePlayers(m_remotePlayer, pollTime); + m_player.ApplyTransformation(all); m_player.ApplyTransformation(skybox, false); // Version d'ApplyTransformation qui ne tient compte que de la rotation // (donc l'objet ne bouge pas relativement au joueur, ce qui est pratique pour une skybox!). - - m_remotePlayer.Render(m_textureAtlas, m_shader01, elapsedTime); - //m_remotePlayer.ApplyTransformation(all); + + + if (m_mouseWU) bloc++; else if (m_mouseWD) bloc--; @@ -1090,12 +1097,14 @@ void Engine::Render(float elapsedTime) { } } - //m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas); + m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas); m_world.Update(m_bullets, m_player.GetPosition(), m_blockinfo); m_renderer.UpdateMesh(&m_world, m_player.GetPosition(), m_blockinfo); if (m_isSkybox) m_skybox.Render(skybox); + + DrawHud(elapsedTime, bloc); DisplayPovGun(); ProcessNotificationQueue(); @@ -1134,6 +1143,8 @@ void Engine::Render(float elapsedTime) { // TODO: Faire la gestion de la réception de paquets. } + + } else if (m_gamestate == GameState::MAIN_MENU || m_gamestate == GameState::OPTIONS) { @@ -1146,6 +1157,9 @@ void Engine::Render(float elapsedTime) { } else if (m_gamestate == GameState::QUIT) Stop(); + + + } void Engine::KeyPressEvent(unsigned char key) { @@ -1406,3 +1420,7 @@ bool Engine::LoadTexture(Texture& texture, const std::string& filename, bool use return true; } +void Engine::RenderRemotePlayers(RemotePlayer& remoteplayer, float elapsedTime) +{ + remoteplayer.Render(m_textureAtlas, m_shader01, elapsedTime); +} diff --git a/SQCSim2021/engine.h b/SQCSim2021/engine.h index bf10f58..962e15d 100644 --- a/SQCSim2021/engine.h +++ b/SQCSim2021/engine.h @@ -61,6 +61,9 @@ private: void DrawHud(float elapsedTime, BlockType bloc); void PrintText(float x, float y, const std::string& t, float charSizeMultiplier = 1.0f); + void RenderRemotePlayers(RemotePlayer& remoteplayer, float elapsedTime); + + Connector m_conn; Shader m_shader01; BlockInfo* m_blockinfo[BTYPE_LAST]; @@ -104,6 +107,7 @@ private: Texture MenuOptionsTexture; Texture SplachScreenTexture; + float m_scale; float m_time = 0; float m_time_SplashScreen = 0; diff --git a/SQCSim2021/remoteplayer.cpp b/SQCSim2021/remoteplayer.cpp index 31d396c..abfb33e 100644 --- a/SQCSim2021/remoteplayer.cpp +++ b/SQCSim2021/remoteplayer.cpp @@ -13,17 +13,13 @@ RemotePlayer::RemotePlayer(netprot::PlayerInfo pinfo) : m_pinfo(pinfo), m_aminac } - -//RemotePlayer::RemotePlayer() -//{ -// -//} - RemotePlayer::~RemotePlayer() { + } -void RemotePlayer::Init() { +void RemotePlayer::Init() +{ } @@ -34,8 +30,6 @@ void RemotePlayer::Feed(const netprot::Output out) { current.states = out.states; current.id = out.id; - //a revoir pour le jump et le shoot en meme temps lorsque les test seront possible - if (current.position != previous.position) { Vector3f positionDelta = current.position - previous.position; @@ -51,51 +45,127 @@ void RemotePlayer::Feed(const netprot::Output out) { } if (current.states.shooting) { - //true; m_animstate = Anim::SHOOTING; } else if (current.states.jumping) { - //true; m_animstate = Anim::JUMPING; } else if (current.states.dead) { - //true; m_animstate = Anim::DEAD; } else if(current.states.powerup){ - //true; m_animstate = Anim::POWERUP; } else if (current.states.still) { - //true; m_animstate = Anim::STILL; } else if (current.states.running) { - //true; m_animstate = Anim::RUNNING; } - previous.direction = current.direction; previous.position = current.position; previous.states = current.states; previous.id = current.id; - - - } void RemotePlayer::Render(TextureAtlas& atlas, Shader& shader, float elapsedTime) { - m_texture_front.Bind(); - glBegin(GL_QUADS); - glTexCoord2f(0, 0); glVertex2f(0, 500); - glTexCoord2f(1, 0); glVertex2f(500, 500); - glTexCoord2f(1, 1); glVertex2f(500, 0); - glTexCoord2f(0, 1); glVertex2f(0, 0); - glEnd(); + shader.Use(); + + //float x = current.position.x; + //float y = current.position.y; + //float z = current.position.z; + + float x = 128.0f; + float y = 21.0f; + float z = 128.0f; + float quadSize = 300.0f; + glBegin(GL_QUADS); + glNormal3f(0, 0, 1); + + // Face avant + glTexCoord2f(0, 0); + glVertex3f(x - quadSize / 2, y - quadSize / 2, z + quadSize / 2); + + glTexCoord2f(1, 0); + glVertex3f(x + quadSize / 2, y - quadSize / 2, z + quadSize / 2); + + glTexCoord2f(1, 1); + glVertex3f(x + quadSize / 2, y + quadSize / 2, z + quadSize / 2); + + glTexCoord2f(0, 1); + glVertex3f(x - quadSize / 2, y + quadSize / 2, z + quadSize / 2); + + // Face arrière + glTexCoord2f(0, 0); + glVertex3f(x + quadSize / 2, y - quadSize / 2, z - quadSize / 2); + + glTexCoord2f(1, 0); + glVertex3f(x - quadSize / 2, y - quadSize / 2, z - quadSize / 2); + + glTexCoord2f(1, 1); + glVertex3f(x - quadSize / 2, y + quadSize / 2, z - quadSize / 2); + + glTexCoord2f(0, 1); + glVertex3f(x + quadSize / 2, y + quadSize / 2, z - quadSize / 2); + + // Face droite + glTexCoord2f(0, 0); + glVertex3f(x + quadSize / 2, y - quadSize / 2, z + quadSize / 2); + + glTexCoord2f(1, 0); + glVertex3f(x + quadSize / 2, y - quadSize / 2, z - quadSize / 2); + + glTexCoord2f(1, 1); + glVertex3f(x + quadSize / 2, y + quadSize / 2, z - quadSize / 2); + + glTexCoord2f(0, 1); + glVertex3f(x + quadSize / 2, y + quadSize / 2, z + quadSize / 2); + + // Face gauche + glTexCoord2f(0, 0); + glVertex3f(x - quadSize / 2, y - quadSize / 2, z - quadSize / 2); + + glTexCoord2f(1, 0); + glVertex3f(x - quadSize / 2, y - quadSize / 2, z + quadSize / 2); + + glTexCoord2f(1, 1); + glVertex3f(x - quadSize / 2, y + quadSize / 2, z + quadSize / 2); + + glTexCoord2f(0, 1); + glVertex3f(x - quadSize / 2, y + quadSize / 2, z - quadSize / 2); + + // Face supérieure + glTexCoord2f(0, 0); + glVertex3f(x - quadSize / 2, y + quadSize / 2, z + quadSize / 2); + + glTexCoord2f(1, 0); + glVertex3f(x + quadSize / 2, y + quadSize / 2, z + quadSize / 2); + + glTexCoord2f(1, 1); + glVertex3f(x + quadSize / 2, y + quadSize / 2, z - quadSize / 2); + + glTexCoord2f(0, 1); + glVertex3f(x - quadSize / 2, y + quadSize / 2, z - quadSize / 2); + + // Face inférieure + glTexCoord2f(0, 0); + glVertex3f(x - quadSize / 2, y - quadSize / 2, z - quadSize / 2); + + glTexCoord2f(1, 0); + glVertex3f(x + quadSize / 2, y - quadSize / 2, z - quadSize / 2); + + glTexCoord2f(1, 1); + glVertex3f(x + quadSize / 2, y - quadSize / 2, z + quadSize / 2); + + glTexCoord2f(0, 1); + glVertex3f(x - quadSize / 2, y - quadSize / 2, z + quadSize / 2); + + glEnd(); + } bool RemotePlayer::LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps, bool stopOnError) diff --git a/SQCSim2021/remoteplayer.h b/SQCSim2021/remoteplayer.h index 40d4ed6..ea28c1c 100644 --- a/SQCSim2021/remoteplayer.h +++ b/SQCSim2021/remoteplayer.h @@ -12,10 +12,7 @@ class RemotePlayer : public Player { public: enum Anim: uint8_t { STILL = 1, RUNNING = 2, JUMPING = 4, SHOOTING = 8, POWERUP = 16, DEAD = 32 }; - /*RemotePlayer();*/ - RemotePlayer(netprot::PlayerInfo pinfo); - ~RemotePlayer();