multiplayer pong game for LPC 1768
Dependencies: mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt
Diff: main.cpp
- Revision:
- 32:7cbf4d9a82af
- Parent:
- 31:f70cf03c8ef9
- Child:
- 33:98ba7b0b8c2b
--- a/main.cpp Sat Nov 28 02:54:12 2020 +0000 +++ b/main.cpp Sat Nov 28 03:22:06 2020 +0000 @@ -19,6 +19,8 @@ volatile int moveData = 0; volatile int menuPress = 0; +int numGamesPlayed = 0; + // interrupts service routines void pressButtonMenu(void) { @@ -59,6 +61,7 @@ while (1) { // keep program running if (menuPress) { GameState *gs = new GameState(); + numGamesPlayed++; // request an open lobby from the server sock.sendTo(nist, connectionRequest, strlen(connectionRequest)); @@ -68,7 +71,7 @@ middleButton.reset(); rightButton.attach(&pressRightGame, IRQ_RISE, DEBOUNCE); - while (!gs->isConnected() || !gs->done()) { + while (!gs->done()) { if (sendFlag != 0) { serverRequest["type"] = "move"; serverRequest["hash"] = "jaredyeagersflipflop"; @@ -84,6 +87,9 @@ } int bytesRead = sock.receiveFrom(nist, tmp_buffer, sizeof(tmp_buffer)); tmp_buffer[bytesRead] = 0; + if (numGamesPlayed == 2) { + printf("read: %s\n\r", tmp_buffer); + } if (bytesRead > 0) { parse(serverResponse, tmp_buffer); gs->updateAndRender(&serverResponse, gfx); @@ -98,7 +104,12 @@ int len = disconnectRequestContent.size(); char *disconnectRequestPayload = (char *)disconnectRequestContent.c_str(); - sock.sendTo(nist, disconnectRequestPayload, len); + sock.sendTo(nist, disconnectRequestPayload, len); + + // cleanup the socket from the previous game + int flushBytes = 0; + while ((receiveFrom = sock.receiveFrom(nist, tmp_buffer, sizeof(tmp_buffer))) != 0) {} + gfx->renderGameOver(gs); // reset the game