Removed debug print statements, cleared background before drawing to screen, and added client GUI implementation
I removed a print statement that printed out every position of the ball, because it was no longer necessary. I also added code to clear the background before drawing to the screen at the start of the game, to remove any lingering un-erased objects. Finally, and most substantially, I finished the initial implementation of the client-side GUI. The client should now be able to specify a connect code through the GUI, and connect to the appropriate server.
This commit is contained in:
30
main.cpp
30
main.cpp
@@ -152,7 +152,8 @@ GameType check_server_client(int argc, char** argv) {
|
||||
std::cout << "Waiting for connection..." << std::endl;
|
||||
std::string response = "";
|
||||
char* temp_response = NULL;
|
||||
/* Wait for the right client to connect. Since recvAll returns a char*, we need to create a temporary variable to check for NULL. */
|
||||
/* Wait for the right client to connect. Since recvAll returns a char*, we need to create a temporary variable to check for NULL.
|
||||
TODO - Check that the client actually sends 'GG'. */
|
||||
do {
|
||||
temp_response = server->recvAll();
|
||||
} while (temp_response == NULL);
|
||||
@@ -278,7 +279,7 @@ int main(int argc, char** argv) {
|
||||
int port_label_x_size = MeasureTextEx(GetFontDefault(), port_label, font_size, font_spacing).x; // Custom size for port label, because it's long
|
||||
bool editing_ip = false; // Indicates whether the IP address text box is being edited
|
||||
bool editing_port = false; // Indicates whether the port text box is being edited
|
||||
while (button_pressed == false) {
|
||||
while (button_pressed == false || ((strlen(ip_text) == 0) || (strlen(port_text) == 0))) {
|
||||
BeginDrawing();
|
||||
ClearBackground(BLACK);
|
||||
/* Label and text box for IP address */
|
||||
@@ -306,6 +307,29 @@ int main(int argc, char** argv) {
|
||||
free(ip_text);
|
||||
free(port_text);
|
||||
}
|
||||
|
||||
if (selected_item == M_CLIENT) {
|
||||
button_pressed = false; // Whether submit button is pressed
|
||||
char* code_text = (char *)calloc(100, sizeof(char)); // Holds the connect code
|
||||
const char* code_label = "Enter code:";
|
||||
bool editing_code = false; // Indicates whether the port text box is being edited
|
||||
while (button_pressed == false || ((strlen(code_text) == 0))) {
|
||||
BeginDrawing();
|
||||
ClearBackground(BLACK);
|
||||
/* Label and text box for IP address */
|
||||
GuiLabel(Rectangle{(WIDTH/2)-(label_size.x/2), (HEIGHT/2) - (HEIGHT/6) - label_size.y - 10, label_size.x, label_size.y}, code_label);
|
||||
|
||||
if (GuiTextBox(Rectangle{(WIDTH/2) - (box_size.x/2), (HEIGHT/2) - (HEIGHT/6), box_size.x, box_size.y}, code_text, 100, editing_code)) {
|
||||
editing_code = !editing_code;
|
||||
}
|
||||
|
||||
button_pressed = GuiButton(Rectangle{(WIDTH/2) - (box_size.x/2), (HEIGHT/2) + (HEIGHT/6), box_size.x, box_size.y}, "Connect");
|
||||
EndDrawing();
|
||||
}
|
||||
|
||||
type = check_client(code_text);
|
||||
free(code_text);
|
||||
}
|
||||
}
|
||||
|
||||
/* Variable to store the response given by the other player */
|
||||
@@ -324,6 +348,7 @@ int main(int argc, char** argv) {
|
||||
Ball ball = Ball(window.GetWidth()/2, window.GetHeight()/2, CIRC_RAD, BASE_SPEED, 0);
|
||||
|
||||
window.BeginDrawing();
|
||||
window.ClearBackground(BLACK);
|
||||
pad1.draw();
|
||||
pad2.draw();
|
||||
ball.draw();
|
||||
@@ -372,7 +397,6 @@ int main(int argc, char** argv) {
|
||||
uint8_t* response_array = (uint8_t *)(type.netsock->recvAll());
|
||||
if (response_array != NULL) {
|
||||
response_data = Serial_deserialize(response_array);
|
||||
std::cout << response_data.pad_x << "\t" << response_data.pad_y << "\t" << response_data.ball_x << "\t" << response_data.ball_y << std::endl;
|
||||
} else {
|
||||
/* If the response is NULL, that means it timed-out. In this case, there's no value to print */
|
||||
std::cout << "NOTHING RECEIVED" << std::endl;
|
||||
|
Reference in New Issue
Block a user