/
Kotopeska
/
RiseUpGame
Обзор
Документация
Войти
/
Kotopeska
/
RiseUpGame
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
view/ViewBase.h
65 строк
1 KB
Kotopeska
init
10 май 2025, 17:31
10 май 2025, 17:31
dd8efb4
Код
Авторство
О чём код?
#ifndef VIEW_BASE_H #define VIEW_BASE_H #include <FL/Fl_Group.H> #include <FL/fl_draw.H> #include <FL/Fl.H> #include "../model/GameModel.h" #include "../model/Observer.h" namespace View { class ViewBase : public Fl_Group, public Model::Observer { protected: Model::GameModel &model; public: ViewBase(int x, int y, int w, int h, Model::GameModel &model) : Fl_Group(x, y, w, h), model(model) { end(); model.addObserver(this); } virtual ~ViewBase() override { model.removeObserver(this); } void update() override { redraw(); } void draw() override { fl_color(FL_BLACK); fl_rectf(x(), y(), w(), h()); Fl_Group::draw(); } int handle(int event) override { return Fl_Group::handle(event); } void drawBackground() { fl_color(FL_BLACK); fl_rectf(0, 0, w(), h()); const auto &stars = model.getBackground().getStars(); for (const auto &star : stars) { int brightness = static_cast<int>(star.alpha * 255); fl_color(fl_rgb_color(brightness, brightness, brightness)); fl_pie(star.x, star.y, star.size, star.size, 0, 360); } } }; } // namespace View #endif // VIEW_BASE_H