underscores
This commit is contained in:
parent
9894198f01
commit
9e3bac710f
29
src/Game.cpp
29
src/Game.cpp
@ -7,6 +7,9 @@
|
||||
#include "words.hpp"
|
||||
#include "utils.hpp"
|
||||
|
||||
const int CHAR_SIZE = 30;
|
||||
const int STEP_SIZE = CHAR_SIZE + CHAR_SIZE / 2;
|
||||
const int UNDERSCORE_DY = 10;
|
||||
|
||||
void Game::Run() {
|
||||
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
|
||||
@ -41,6 +44,7 @@ void Game::Run() {
|
||||
bool quit = false;
|
||||
SDL_Event event;
|
||||
while (!quit) {
|
||||
game.draw(renderer);
|
||||
while (SDL_WaitEvent(&event)) {
|
||||
switch (event.type) {
|
||||
case SDL_QUIT:
|
||||
@ -48,6 +52,7 @@ void Game::Run() {
|
||||
break;
|
||||
case SDL_KEYDOWN :
|
||||
game.handle_key(event.key.keysym.sym);
|
||||
game.draw(renderer);
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,8 +77,32 @@ Game::Game() {
|
||||
word = all_words.back();
|
||||
all_words.pop_back();
|
||||
guess_corrector = std::make_unique<GuessCorrector>(word);
|
||||
std::cout << "Word: " << word << std::endl;
|
||||
}
|
||||
|
||||
void Game::handle_key(SDL_Keycode event) {
|
||||
|
||||
}
|
||||
|
||||
void Game::draw(SDL_Renderer *renderer) {
|
||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
draw_guesses(renderer);
|
||||
}
|
||||
|
||||
void Game::draw_guesses(SDL_Renderer *renderer) {
|
||||
size_t len = strlen(word);
|
||||
int total_width = (len - 1) * STEP_SIZE + CHAR_SIZE;
|
||||
int start_x = (SCREEN_SIZE.x - total_width) / 2;
|
||||
int char_y = (SCREEN_SIZE.y / 2) - CHAR_SIZE / 2;
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
int here = start_x + i * STEP_SIZE;
|
||||
const SDL_Rect rect = {here, char_y + UNDERSCORE_DY, CHAR_SIZE, 5};
|
||||
SDL_SetRenderDrawColor(renderer, 255, 0, 0, SDL_ALPHA_OPAQUE);
|
||||
SDL_RenderFillRect(renderer, &rect);
|
||||
}
|
||||
|
||||
SDL_RenderPresent(renderer);
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <SDL_events.h>
|
||||
#include <vector>
|
||||
#include <optional>
|
||||
#include <SDL_render.h>
|
||||
#include "GuessCorrector.hpp"
|
||||
|
||||
const SDL_Point SCREEN_SIZE{800, 800};
|
||||
@ -20,5 +21,10 @@ public:
|
||||
Game();
|
||||
|
||||
void handle_key(SDL_Keycode event);
|
||||
|
||||
void draw(SDL_Renderer *renderer);
|
||||
|
||||
private:
|
||||
void draw_guesses(SDL_Renderer *renderer);
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user