multiplayer pong game for LPC 1768
Dependencies: mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt
Diff: gamestate.cpp
- Revision:
- 21:992294ffabf4
- Parent:
- 20:b2687089661c
- Child:
- 22:1c49e1fae846
--- a/gamestate.cpp Sun Nov 15 23:45:34 2020 +0000 +++ b/gamestate.cpp Mon Nov 16 00:50:20 2020 +0000 @@ -31,16 +31,31 @@ if (typeResponse == "connected") { gfx->renderWaitingRoom(); } else if (typeResponse == "gameState") { - this->p1_loc.y = (*serverResponse)["gameState"]["playerOnePos"].get<int>(); - printf("new player1 location: %i\n\r", this->p1_loc.y); - this->p2_loc.y = (*serverResponse)["playerTwoPos"].get<int>(); - int updated_ball_x = (*serverResponse)["ballPos"][0].get<int>(); - int updated_ball_y = (*serverResponse)["ballPos"][1].get<int>(); - this->ball_loc.x = updated_ball_x; - this->ball_loc.y = updated_ball_y; - this->is_done = (char)(*serverResponse)["isOver"].get<int>(); - this->localPlayerNum = (char)(*serverResponse)["player"].get<int>(); - this->lobbyHash = (*serverResponse)["hash"].get<std::string>(); + MbedJSONValue &serverGameState = (*serverResponse)["gameState"]; + if (serverGameState.hasMember("playerOnePos")) { + this->p1_loc.y = (serverGameState)["playerOnePos"].get<int>(); + } + if (serverGameState.hasMember("playerTwoPos")) { + this->p2_loc.y = (serverGameState)["playerTwoPos"].get<int>(); + } + if (serverGameState.hasMember("ballPos")) { + int updated_ball_x = (serverGameState)["ballPos"][0].get<int>(); + int updated_ball_y = (serverGameState)["ballPos"][1].get<int>(); + this->ball_loc.x = updated_ball_x; + this->ball_loc.y = updated_ball_y; + } + if (serverGameState.hasMember("isOver")) { + this->is_done = (char)(serverGameState)["isOver"].get<int>(); + this->is_done = (char)(serverGameState)["isOver"].get<int>(); + } + + if (serverGameState.hasMember("player")) { + this->localPlayerNum = (char)(serverGameState)["player"].get<int>(); + } + + if (serverGameState.hasMember("hash")) { + this->lobbyHash = (serverGameState)["hash"].get<std::string>(); + } gfx->renderGameState(this); } }