Commit cd922056 authored by Ушкова Диана Петровна's avatar Ушкова Диана Петровна
Browse files

started pattern Observed

1 merge request!9added pattern Observer
Showing with 74 additions and 0 deletions
+74 -0
assets/pacmanDown.png

2.04 KB

assets/pacmanUp.png

2.06 KB

#include "../../Event/IGameEvent.h"
#include "IObserver.h"
void ScoreCount::on_notify(const IGameEvent& event) {
if (const auto* food_event = dynamic_cast<const DeleteStaticEntity*>(&event)) {
if (food_event->get_player_id() == 1)
++m_player_one_food;
else if (food_event->get_player_id() == 2)
++m_player_two_food;
}
}
#pragma once
class IGameEvent;
class IObserver {
public:
virtual ~IObserver() = default;
virtual void on_notify(const IGameEvent& event) = 0;
};
class ScoreCount : public IObserver {
public:
void on_notify(const IGameEvent& event) override;
int get_player_one() const {return m_player_one_food; }
int get_player_two() const {return m_player_two_food; }
private:
int m_player_one_food{0};
int m_player_two_food{0};
};
\ No newline at end of file
#include "MenuGame.h"
#include "../../../../config.h"
#include "../../State/ThemeManager.h"
#include "../../State/GameState.h"
MenuGame::MenuGame() {
m_title.setString(config::SELECT_LEVEL_TITLE_WINDOW);
m_title.setCharacterSize(30);
m_title.setFillColor(ThemeManager::Instance().getButtonScoreColor());
m_title.setPosition(10.f, 55.f);
m_player_one_score.setFillColor(ThemeManager::Instance().getButtonScoreColor());
m_player_one_score.setPosition(10.f, 95.f);
m_player_two_score.setFillColor(ThemeManager::Instance().getButtonScoreColor());
m_player_two_score.setPosition(10.f, 125.f);
}
void MenuGame::draw_into(sf::RenderWindow &window, const ScoreCount& scores) {
m_player_one_score.setString("Player 1: " + std::to_string(scores.get_player_one()));
m_player_two_score.setString("Player 2: " + std::to_string(scores.get_player_two()));
window.draw(m_button);
window.draw(m_title);
window.draw(m_player_one_score);
window.draw(m_player_two_score);
}
\ No newline at end of file
#pragma once
#include <SFML/Graphics.hpp>
#include "IObserver.h"
class MenuGame {
public:
MenuGame();
void draw_into(sf::RenderWindow &window, const ScoreCount& scores);
private:
sf::RectangleShape m_background;
sf::RectangleShape m_button;
sf::Text m_title;
sf::Text m_player_one_score;
sf::Text m_player_two_score;
};
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment