From 27b44d2511e1ce4ad3506f529ba86e090d05a165 Mon Sep 17 00:00:00 2001 From: stiffly Date: Tue, 8 Dec 2015 16:41:48 +0100 Subject: [PATCH] Input events for Client done. Instead of windows getAsyncKeyState(); --- include/Engine/Network/Client.h | 3 +- src/Engine/Network/Client.cpp | 89 +++++++++++++++------------------ src/Game/Game.cpp | 7 +-- 3 files changed, 46 insertions(+), 53 deletions(-) diff --git a/include/Engine/Network/Client.h b/include/Engine/Network/Client.h index 54d83355..b9c1abcc 100644 --- a/include/Engine/Network/Client.h +++ b/include/Engine/Network/Client.h @@ -7,6 +7,7 @@ #include #include #include +#include // For input event #include "Network/MessageType.h" #include "Network/NetworkDefines.h" @@ -40,7 +41,7 @@ private: void ParsePing(); void ParseServerPing(); void ParseSnapshot(char* data, size_t length); - void SendInput(); + //void SendInput(); void SendDebugInput(); void DrawBoard(); diff --git a/src/Engine/Network/Client.cpp b/src/Engine/Network/Client.cpp index 7ef2c210..9e9e6ed4 100644 --- a/src/Engine/Network/Client.cpp +++ b/src/Engine/Network/Client.cpp @@ -51,7 +51,7 @@ void Client::Start(EventBroker* eventBroker) threads.create_thread(boost::bind(&Client::DisplayLoop, this)); threads.create_thread(boost::bind(&Client::ReadFromServer, this)); - threads.create_thread(boost::bind(&Client::InputLoop, this)); + //threads.create_thread(boost::bind(&Client::InputLoop, this)); threads.join_all(); } @@ -82,7 +82,7 @@ void Client::InputLoop() int testTimeShit2 = (1000 * (currentTime - previousInputTime) / (double)CLOCKS_PER_SEC); if (intervallMs < (1000 * (currentTime - previousInputTime) / (double)CLOCKS_PER_SEC)) { if (m_PlayerID != -1) { - SendInput(); + //SendInput(); } previousInputTime = currentTime; } @@ -300,58 +300,49 @@ void Client::SendDebugInput() m_ReceiverEndpoint, 0); } - if (GetAsyncKeyState('C')) { - Connect(); - } - - if (GetAsyncKeyState('Q')) { - Disconnect(); - } - memset(dataPackage, 0, INPUTSIZE); - delete[] dataPackage; -} - -void Client::SendInput() -{ - char* dataPackage = new char[INPUTSIZE]; // The package that will be sent to the server, when filled - if (GetAsyncKeyState('W')) { - int len = CreateMessage(MessageType::Event, "+Forward", dataPackage); - m_Socket.send_to(boost::asio::buffer( - dataPackage, - len), - m_ReceiverEndpoint, 0); - } - if (GetAsyncKeyState('A')) { - int len = CreateMessage(MessageType::Event, "-Right", dataPackage); - m_Socket.send_to(boost::asio::buffer( - dataPackage, - len), - m_ReceiverEndpoint, 0); - } - if (GetAsyncKeyState('S')) { - int len = CreateMessage(MessageType::Event, "-Forward", dataPackage); - m_Socket.send_to(boost::asio::buffer( - dataPackage, - len), - m_ReceiverEndpoint, 0); - } - if (GetAsyncKeyState('D')) { - int len = CreateMessage(MessageType::Event, "+Right", dataPackage); - m_Socket.send_to(boost::asio::buffer( - dataPackage, - len), - m_ReceiverEndpoint, 0); - } - if (GetAsyncKeyState('V')) { - Disconnect(); - } - memset(dataPackage, 0, INPUTSIZE); delete[] dataPackage; } bool Client::OnKeyDown(const Events::KeyDown& event) { - std::cout << event.KeyCode; + char* dataPackage = new char[INPUTSIZE]; // The package that will be sent to the server, when filled + if (event.KeyCode == GLFW_KEY_W) { + int len = CreateMessage(MessageType::Event, "+Forward", dataPackage); + m_Socket.send_to(boost::asio::buffer( + dataPackage, + len), + m_ReceiverEndpoint, 0); + } + if (event.KeyCode == GLFW_KEY_A) { + int len = CreateMessage(MessageType::Event, "-Right", dataPackage); + m_Socket.send_to(boost::asio::buffer( + dataPackage, + len), + m_ReceiverEndpoint, 0); + } + if (event.KeyCode == GLFW_KEY_S) { + int len = CreateMessage(MessageType::Event, "-Forward", dataPackage); + m_Socket.send_to(boost::asio::buffer( + dataPackage, + len), + m_ReceiverEndpoint, 0); + } + if (event.KeyCode == GLFW_KEY_D) { + int len = CreateMessage(MessageType::Event, "+Right", dataPackage); + m_Socket.send_to(boost::asio::buffer( + dataPackage, + len), + m_ReceiverEndpoint, 0); + } + if (event.KeyCode == GLFW_KEY_V) { + Disconnect(); + } + if (event.KeyCode == GLFW_KEY_C) { + Connect(); + } + + memset(dataPackage, 0, INPUTSIZE); + delete[] dataPackage; return true; } \ No newline at end of file diff --git a/src/Game/Game.cpp b/src/Game/Game.cpp index 53f591ba..b9886c18 100644 --- a/src/Game/Game.cpp +++ b/src/Game/Game.cpp @@ -57,15 +57,16 @@ void Game::Tick() double currentTime = glfwGetTime(); double dt = currentTime - m_LastTime; m_LastTime = currentTime; - m_EventBroker->Process(); m_EventBroker->Swap(); m_InputManager->Update(dt); - m_Renderer->Update(dt); m_EventBroker->Swap(); - m_RenderQueueFactory->Update(m_World); + // DO SYSTEM SHIT HERE + m_EventBroker->Process(); + m_Renderer->Update(dt); + m_RenderQueueFactory->Update(m_World); m_Renderer->Draw(m_RenderQueueFactory->RenderQueues()); m_EventBroker->Swap();