multiplayer pong game for LPC 1768
Dependencies: mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt
Diff: gamestate.cpp
- Revision:
- 27:fcc5fee18a24
- Parent:
- 25:4a965eccb922
- Child:
- 28:a26a43cdaea8
--- a/gamestate.cpp Mon Nov 16 04:27:47 2020 +0000 +++ b/gamestate.cpp Mon Nov 23 01:19:17 2020 +0000 @@ -10,7 +10,9 @@ this->p2_loc = playerTwoLocation; this->ball_loc = ballLocation; this->has_started = 0; - this->is_done = false; + this->is_done = 0; + this->score[0] = 0; + this->score[1] = 0; } Coord GameState::getPlayerOneLocation() { @@ -25,7 +27,7 @@ return this->ball_loc; } -void GameState::update(MbedJSONValue *serverResponse, Graphics *gfx) { +void GameState::updateAndRender(MbedJSONValue *serverResponse, Graphics *gfx) { string typeResponse = (*serverResponse)["type"].get<std::string>(); if (typeResponse == "connected") { if (serverResponse->hasMember("player")) { @@ -54,15 +56,20 @@ this->ball_loc.y = updated_ball_y; } if (serverGameState.hasMember("isOver")) { + int is_done_value = (serverGameState)["isOver"].get<int>(); + printf("isDone value %i\n", is_done_value); this->is_done = (char)(serverGameState)["isOver"].get<int>(); - this->is_done = (char)(serverGameState)["isOver"].get<int>(); + printf("game is done? %c\n\r", this->is_done); } - + if (serverGameState.hasMember("score")) { + this->score[0] = (serverGameState)["score"][0].get<int>(); + this->score[1] = (serverGameState)["score"][1].get<int>(); + } // TODO: check if hash has already been set if (serverGameState.hasMember("hash")) { strcpy(this->lobbyHash, (serverGameState)["hash"].get<std::string>().c_str()); - this->lobbyHash[21] = 0; + this->lobbyHash[20] = 0; } gfx->renderGameState(this); } @@ -83,6 +90,14 @@ return this->localPlayerNum; } -bool GameState::done() { +int GameState::getPlayerOneScore() { + return this->score[0]; +} + +int GameState::getPlayerTwoScore() { + return this->score[1]; +} + +char GameState::done() { return this->is_done; }