From 62eaac64646568afd99d5343662fb0a594c11d7c Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Mon, 2 Jan 2023 16:51:10 +0900 Subject: [PATCH] Add spritesheet, impl "set-up" before round --- resources/rockpaperscissorsSpriteSheet.png | Bin 0 -> 4798 bytes src/constants.h | 12 + src/ems.cc | 2 +- src/ems.h | 3 +- src/game.cc | 263 ++++++++++++++++++++- src/game.h | 28 ++- wasm_build/Makefile | 7 +- wasm_build/logic.js | 2 +- 8 files changed, 299 insertions(+), 18 deletions(-) create mode 100644 resources/rockpaperscissorsSpriteSheet.png diff --git a/resources/rockpaperscissorsSpriteSheet.png b/resources/rockpaperscissorsSpriteSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..ad23d8c768308aa8a4d08bf7e04eab03021dfd2f GIT binary patch literal 4798 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 Y0l>sruz(( #include -EM_JS(void, js_set_ready, (), { Rune.actions.set_ready(); }); +EM_JS(void, js_set_ready, (), { Rune.actions.set_ready("unused"); }); EM_JS(void, js_set_choices, (const char *first, const char *second, const char *third), { diff --git a/src/ems.h b/src/ems.h index 9218531..41209db 100644 --- a/src/ems.h +++ b/src/ems.h @@ -2,7 +2,8 @@ #define ROCK_PAPER_SCISSORS_DUEL_EMSCRIPTEN_H_ extern void call_js_set_ready(); -extern void call_js_set_choices(const char *first, const char *second, const char *third); +extern void call_js_set_choices(const char *first, const char *second, + const char *third); extern int call_js_get_canvas_width(); extern int call_js_get_canvas_height(); diff --git a/src/game.cc b/src/game.cc index 438c9c5..d91d1fd 100644 --- a/src/game.cc +++ b/src/game.cc @@ -6,7 +6,19 @@ // third party includes #include -Game::Game() : status("Unknown status"), prevPos(0), cachedPos(0) {} +// local includes +#include "constants.h" +#include "ems.h" + +Game::Game() + : spriteSheet(std::nullopt), status("Unknown status"), readyTimer(0.0F), + prevPos(0), cachedPos(0) { + spriteSheet = LoadTexture("resources/rockpaperscissorsSpriteSheet.png"); + + picked[0] = 0; + picked[1] = 0; + picked[2] = 0; +} void Game::update_state(const char *playerOne, const char *playerTwo, const char *currentPlayer, char first_first, @@ -21,12 +33,12 @@ void Game::update_state(const char *playerOne, const char *playerTwo, } if (std::strcmp(currentPlayer, "undefined") == 0) { - status = "spectator"; + status = "Watching a Game..."; + flags.set(2); } else if (std::strcmp(currentPlayer, playerOne) == 0) { - status = "player one"; } else if (std::strcmp(currentPlayer, playerTwo) == 0) { - status = "player two"; } else { + // This should never happen. status = "unknown player"; } @@ -34,6 +46,11 @@ void Game::update_state(const char *playerOne, const char *playerTwo, prevPos = cachedPos; cachedPos = pos; } + + if (flags.test(0) && flags.test(3) && first_ready && second_ready) { + flags.reset(3); + flags.set(4); + } } void Game::do_update() { @@ -41,12 +58,244 @@ void Game::do_update() { draw_impl(); } -void Game::update_impl() {} +void Game::update_impl() { + if (flags.test(2)) { + return; + } + + readyTimer -= GetFrameTime(); + if (readyTimer <= 0.0F) { + readyTimer = READY_TIMER_MAX; + flags.flip(1); + } + + if (IsMouseButtonPressed(0)) { + int triple_single_width = GetScreenWidth() / 3.0F + 0.5F; + if (triple_single_width > ICON_MAX_WIDTH) { + triple_single_width = ICON_MAX_WIDTH; + } + + // selected Rock + if (GetTouchX() >= 0 && GetTouchX() <= triple_single_width && + GetTouchY() >= GetScreenHeight() - triple_single_width && + GetTouchY() <= GetScreenHeight()) { + bool set_picked = false; + for (unsigned int i = 0; i < 3; ++i) { + if (picked[i] == 0) { + picked[i] = 'r'; + set_picked = true; + break; + } + } + if (!set_picked) { + picked[2] = 'r'; + } + } + // selected Paper + else if (GetTouchX() >= triple_single_width && + GetTouchX() <= triple_single_width * 2 && + GetTouchY() >= GetScreenHeight() - triple_single_width && + GetTouchY() <= GetScreenHeight()) { + bool set_picked = false; + for (unsigned int i = 0; i < 3; ++i) { + if (picked[i] == 0) { + picked[i] = 'p'; + set_picked = true; + break; + } + } + if (!set_picked) { + picked[2] = 'p'; + } + } + // selected Scissors + else if (GetTouchX() >= triple_single_width * 2 && + GetTouchX() <= GetScreenWidth() && + GetTouchY() >= GetScreenHeight() - triple_single_width && + GetTouchY() <= GetScreenHeight()) { + bool set_picked = false; + for (unsigned int i = 0; i < 3; ++i) { + if (picked[i] == 0) { + picked[i] = 's'; + set_picked = true; + break; + } + } + if (!set_picked) { + picked[2] = 's'; + } + } + // selected Slot 0 + else if (GetTouchX() >= 0 && GetTouchX() <= triple_single_width && + GetTouchY() >= GetScreenHeight() - triple_single_width * 2 && + GetTouchY() <= GetScreenHeight() - triple_single_width) { + picked[0] = 0; + } + // selected Slot 1 + else if (GetTouchX() >= triple_single_width && + GetTouchX() <= triple_single_width * 2 && + GetTouchY() >= GetScreenHeight() - triple_single_width * 2 && + GetTouchY() <= GetScreenHeight() - triple_single_width) { + picked[1] = 0; + } + // selected Slot 2 + else if (GetTouchX() >= triple_single_width * 2 && + GetTouchX() <= GetScreenWidth() && + GetTouchY() >= GetScreenHeight() - triple_single_width * 2 && + GetTouchY() <= GetScreenHeight() - triple_single_width) { + picked[2] = 0; + } + // selected Ready + else if (GetTouchX() >= 0 && GetTouchX() <= GetScreenWidth() && + GetTouchY() >= GetScreenHeight() - triple_single_width * 3 && + GetTouchY() <= GetScreenHeight() - triple_single_width * 2) { + if (picked[0] != 0 && picked[1] != 0 && picked[2] != 0 && + !flags.test(0)) { + call_js_set_ready(); + flags.set(0); + flags.set(3); + } + } + } + + if (picked[0] != 0 && picked[1] != 0 && picked[2] != 0) { + if (flags.test(0)) { + status = "Waiting..."; + } else { + status = "Hit Ready!"; + } + } else { + status = "Pick Moves!"; + } +} void Game::draw_impl() { + if (flags.test(2)) { + BeginDrawing(); + ClearBackground(BLACK); + DrawText(status.c_str(), 0, 0, 30, RAYWHITE); + EndDrawing(); + return; + } + BeginDrawing(); ClearBackground(BLACK); - DrawText("Testing...", 100, 100, 30, RAYWHITE); - DrawText(status.c_str(), 0, 200, 30, RAYWHITE); + if (spriteSheet.has_value()) { + float fifth_width = GetScreenWidth() / 5.0F; + float triple_single_width = GetScreenWidth() / 3.0F; + if (triple_single_width > (float)ICON_MAX_WIDTH) { + triple_single_width = ICON_MAX_WIDTH; + } + + if (flags.test(0)) { + } else { + unsigned char value = 0; + if (flags.test(1)) { + // fade ready bg to gray + value = (1.0F - readyTimer / READY_TIMER_MAX) * 127.0F; + } else { + // fade ready bg to black + value = (readyTimer / READY_TIMER_MAX) * 127.0F; + } + DrawRectangle(0, GetScreenHeight() - triple_single_width * 3.0F, + GetScreenWidth(), triple_single_width, + {value, value, value, 255}); + + DrawTexturePro( + spriteSheet.value(), + {READY_DIMS[0], READY_DIMS[1], READY_DIMS[2], READY_DIMS[3]}, + {0, GetScreenHeight() - triple_single_width * 3.0F, + GetScreenWidth() - fifth_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + + if (flags.test(0)) { + // is ready + DrawTexturePro(spriteSheet.value(), + {EXCLAMATIONMARKS_DIMS[0], EXCLAMATIONMARKS_DIMS[1], + EXCLAMATIONMARKS_DIMS[2], EXCLAMATIONMARKS_DIMS[3]}, + {GetScreenWidth() - fifth_width, + GetScreenHeight() - triple_single_width * 3.0F, + fifth_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + } else { + // not ready yet + DrawTexturePro(spriteSheet.value(), + {QUESTIONMARK_DIMS[0], QUESTIONMARK_DIMS[1], + QUESTIONMARK_DIMS[2], QUESTIONMARK_DIMS[3]}, + {GetScreenWidth() - fifth_width, + GetScreenHeight() - triple_single_width * 3.0F, + fifth_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + } + + DrawRectangle(0, GetScreenHeight() - triple_single_width * 2.0F, + GetScreenWidth(), triple_single_width, + {200, 200, 200, 255}); + + for (unsigned int i = 0; i < 3; ++i) { + float x = 0; + if (i == 1) { + x = (GetScreenWidth() - triple_single_width) / 2.0F; + } else if (i == 2) { + x = GetScreenWidth() - triple_single_width; + } + switch (picked[i]) { + case 0: + break; + case 'r': + DrawTexturePro( + spriteSheet.value(), + {ROCK_DIMS[0], ROCK_DIMS[1], ROCK_DIMS[2], ROCK_DIMS[3]}, + {x, (float)GetScreenHeight() - triple_single_width * 2.0F, + triple_single_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + break; + case 'p': + DrawTexturePro( + spriteSheet.value(), + {PAPER_DIMS[0], PAPER_DIMS[1], PAPER_DIMS[2], PAPER_DIMS[3]}, + {x, (float)GetScreenHeight() - triple_single_width * 2.0F, + triple_single_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + break; + case 's': + DrawTexturePro(spriteSheet.value(), + {SCISSORS_DIMS[0], SCISSORS_DIMS[1], SCISSORS_DIMS[2], + SCISSORS_DIMS[3]}, + {x, + (float)GetScreenHeight() - triple_single_width * 2.0F, + triple_single_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + break; + default: + break; + } + } + + DrawRectangle(0, GetScreenHeight() - triple_single_width, + GetScreenWidth(), triple_single_width, + {127, 127, 127, 255}); + DrawTexturePro(spriteSheet.value(), + {ROCK_DIMS[0], ROCK_DIMS[1], ROCK_DIMS[2], ROCK_DIMS[3]}, + {0.0F, (float)GetScreenHeight() - triple_single_width, + triple_single_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + DrawTexturePro( + spriteSheet.value(), + {PAPER_DIMS[0], PAPER_DIMS[1], PAPER_DIMS[2], PAPER_DIMS[3]}, + {(GetScreenWidth() - triple_single_width) / 2.0F, + (float)GetScreenHeight() - triple_single_width, triple_single_width, + triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + DrawTexturePro(spriteSheet.value(), + {SCISSORS_DIMS[0], SCISSORS_DIMS[1], SCISSORS_DIMS[2], + SCISSORS_DIMS[3]}, + {GetScreenWidth() - triple_single_width, + (float)GetScreenHeight() - triple_single_width, + triple_single_width, triple_single_width}, + {0.0F, 0.0F}, 0.0F, WHITE); + } + } + DrawText(status.c_str(), 0, 0, 20, RAYWHITE); EndDrawing(); } diff --git a/src/game.h b/src/game.h index 969b3ce..dd3ecf0 100644 --- a/src/game.h +++ b/src/game.h @@ -1,31 +1,47 @@ #ifndef ROCK_PAPER_SCISSORS_DUEL_GAME_H_ #define ROCK_PAPER_SCISSORS_DUEL_GAME_H_ +// standard library includes +#include +#include #include +// third party includes +#include + class Game { public: Game(); - void update_state(const char *playerOne, const char *playerTwo, const char *currentPlayer, - char first_first, char first_second, char first_third, - char second_first, char second_second, char second_third, - bool first_ready, bool second_ready, int pos); + void update_state(const char *playerOne, const char *playerTwo, + const char *currentPlayer, char first_first, + char first_second, char first_third, char second_first, + char second_second, char second_third, bool first_ready, + bool second_ready, int pos); void do_update(); private: - void update_impl(); void draw_impl(); + std::optional spriteSheet; std::string playerOne; std::string playerTwo; std::string status; + /* + * 0 - ready flag + * 1 - readyTimer fade to gray (fade to black otherwise) + * 2 - is spectator + * 3 - ready flag dirty + * 4 - animating results + */ + std::bitset<32> flags; + float readyTimer; int prevPos; int cachedPos; + char picked[3]; bool isPlayerOne; - }; #endif diff --git a/wasm_build/Makefile b/wasm_build/Makefile index 91a6807..8ff9c62 100644 --- a/wasm_build/Makefile +++ b/wasm_build/Makefile @@ -10,7 +10,9 @@ SOURCES = \ ../src/game.cc HEADERS = \ - ../src/constants.h + ../src/constants.h \ + ../src/ems.h \ + ../src/game.h CXX = source ${HOME}/git/emsdk/emsdk_env.sh && em++ @@ -18,12 +20,13 @@ OUTDIR = outdir all: | format ${OUTDIR} ${OUTDIR}/rock_paper_scissors_duel.html ${OUTDIR}/index.html ${OUTDIR}/logic.js ${OUTDIR}/client.js -${OUTDIR}/rock_paper_scissors_duel.html: ${SOURCES} ${HEADERS} client.js logic.js +${OUTDIR}/rock_paper_scissors_duel.html: ${SOURCES} ${HEADERS} ${OUTDIR}/client.js ${OUTDIR}/logic.js ${CXX} -o ${OUTDIR}/rock_paper_scissors_duel.html \ -s USE_GLFW=3 -I../wasm_includes -L../wasm_libs -lraylib \ --shell-file custom_shell.html \ -sEXPORTED_FUNCTIONS=_main,_game_visual_update \ -sEXPORTED_RUNTIME_METHODS=ccall \ + --preload-file ../resources \ ${OTHER_FLAGS} \ ${SOURCES} diff --git a/wasm_build/logic.js b/wasm_build/logic.js index d9c2ad9..d7250e3 100644 --- a/wasm_build/logic.js +++ b/wasm_build/logic.js @@ -111,7 +111,7 @@ Rune.initLogic({ } } }, - set_ready: ({ game, playerId }) => { + set_ready: (unused, { game, playerId }) => { let is_first = game.player1 === playerId; if (is_first) { -- 2.49.0