Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef SCOREBOARD_H
- #define SCOREBOARD_H
- #include "SDL.h"
- #include "SDL_ttf.h"
- #include "SDL_image.h"
- #include <iostream>
- #include <stdio.h>
- #include <sstream>
- class Scoreboard {
- int playerOneScore;
- int playerTwoScore;
- int result;
- bool playerOne;
- SDL_Renderer* renderer;
- public:
- Scoreboard(SDL_Renderer* r);
- ~Scoreboard();
- void renderScoreboard();
- void renderGameOver();
- void updateScoreOne();
- void updateScoreTwo();
- void renderMessage(int x, int y, int w, int h, const char* text, SDL_Renderer* renderer);
- void setPlayerOne(bool SPO);
- bool getPlayerOne();
- int countDigit(int score);
- const char* resultMsg();
- };
- Scoreboard::Scoreboard(SDL_Renderer* r) : playerOneScore(0), playerTwoScore(0), playerOne(true), result(0), renderer(r) {
- }
- Scoreboard::~Scoreboard() {
- }
- void Scoreboard::renderScoreboard() {
- renderMessage(405, 15, 100, 40, "Player 1", renderer);
- renderMessage(530, 15, 100, 40, "Player 2", renderer);
- if (countDigit(playerOneScore) > 1) {
- renderMessage(435, 50, 30, 40, std::to_string(playerOneScore).c_str(), renderer);
- }
- else {
- renderMessage(445, 50, 15, 40, std::to_string(playerOneScore).c_str(), renderer);
- }
- if (countDigit(playerTwoScore) > 1) {
- renderMessage(560, 50, 30, 40, std::to_string(playerTwoScore).c_str(), renderer);
- }
- else {
- renderMessage(570, 50, 15, 40, std::to_string(playerTwoScore).c_str(), renderer);
- }
- renderMessage(445, 170, 150, 40, "Now Playing:", renderer);
- if (playerOne == true) {
- renderMessage(475, 210, 100, 40, "Player 1", renderer);
- }
- else {
- renderMessage(475, 210, 100, 40, "Player 2", renderer);
- }
- }
- void Scoreboard::renderGameOver() {
- renderMessage(270, 100, 100, 40, "Game over", renderer);
- renderMessage(245, 200, 150, 40, resultMsg(), renderer);
- }
- void Scoreboard::updateScoreOne() {
- playerOneScore++;
- }
- void Scoreboard::updateScoreTwo() {
- playerTwoScore++;
- }
- void Scoreboard::renderMessage(int x, int y, int w, int h, const char* text, SDL_Renderer* renderer) {
- TTF_Font* Sans = TTF_OpenFont("Readable9x4.ttf", 15);
- SDL_Color White = { 255, 255, 255 };
- SDL_Surface* surfaceMessage = TTF_RenderText_Solid(Sans, text, White);
- SDL_Texture* Message = SDL_CreateTextureFromSurface(renderer, surfaceMessage);
- SDL_Rect Message_rect;
- Message_rect.x = x;
- Message_rect.y = y;
- Message_rect.w = w;
- Message_rect.h = h;
- SDL_RenderCopy(renderer, Message, NULL, &Message_rect);
- //SDL_RenderPresent(renderer);
- SDL_FreeSurface(surfaceMessage);
- //SDL_DestroyTexture(Message);
- }
- void Scoreboard::setPlayerOne(bool SPO) {
- playerOne = SPO;
- }
- bool Scoreboard::getPlayerOne() {
- return playerOne;
- }
- const char* Scoreboard::resultMsg() {
- if (playerOneScore == playerTwoScore) {
- return "It's a draw!";
- }
- else if (playerOneScore > playerTwoScore) {
- return "Player 1 won!";
- }
- else {
- return "Player 2 won!";
- }
- }
- int Scoreboard::countDigit(int score){
- int count = 0;
- while (score != 0) {
- score = score / 10;
- ++count;
- }
- return count;
- }
- #endif // SCOREBOARD_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement