2021-10-27 12:19:10 +00:00
|
|
|
#ifndef DEMO_HUD_H
|
|
|
|
#define DEMO_HUD_H
|
2020-04-13 11:24:53 +00:00
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
#include <string>
|
|
|
|
|
2021-10-27 12:19:10 +00:00
|
|
|
#include "base/closure.h"
|
|
|
|
#include "engine/animator.h"
|
|
|
|
#include "engine/image_quad.h"
|
|
|
|
#include "engine/solid_quad.h"
|
2020-04-13 11:24:53 +00:00
|
|
|
|
|
|
|
namespace eng {
|
|
|
|
class Image;
|
|
|
|
} // namespace eng
|
|
|
|
|
|
|
|
class Hud {
|
|
|
|
public:
|
|
|
|
Hud();
|
|
|
|
~Hud();
|
|
|
|
|
|
|
|
bool Initialize();
|
|
|
|
|
2021-08-31 21:21:29 +00:00
|
|
|
void Pause(bool pause);
|
|
|
|
|
2020-04-13 11:24:53 +00:00
|
|
|
void Show();
|
2021-08-31 21:21:29 +00:00
|
|
|
void Hide();
|
|
|
|
void HideProgress();
|
2020-04-13 11:24:53 +00:00
|
|
|
|
2021-08-31 21:21:29 +00:00
|
|
|
void SetScore(size_t score, bool flash);
|
2020-06-30 22:23:07 +00:00
|
|
|
void SetWave(int wave, bool flash);
|
2020-04-13 11:24:53 +00:00
|
|
|
void SetProgress(float progress);
|
|
|
|
|
2021-08-31 21:21:29 +00:00
|
|
|
void ShowMessage(const std::string& text, float duration);
|
|
|
|
|
|
|
|
void ShowBonus(size_t bonus);
|
|
|
|
|
2020-04-13 11:24:53 +00:00
|
|
|
private:
|
|
|
|
eng::SolidQuad progress_bar_[2];
|
|
|
|
eng::ImageQuad text_[2];
|
2021-08-31 21:21:29 +00:00
|
|
|
eng::ImageQuad message_;
|
|
|
|
eng::ImageQuad bonus_;
|
2020-04-13 11:24:53 +00:00
|
|
|
|
|
|
|
eng::Animator progress_bar_animator_[2];
|
|
|
|
eng::Animator text_animator_[2];
|
2021-08-31 21:21:29 +00:00
|
|
|
eng::Animator message_animator_;
|
2020-04-13 11:24:53 +00:00
|
|
|
base::Closure text_animator_cb_[2];
|
2021-08-31 21:21:29 +00:00
|
|
|
eng::Animator bonus_animator_;
|
2020-04-13 11:24:53 +00:00
|
|
|
|
|
|
|
int max_text_width_ = 0;
|
|
|
|
|
2021-08-31 21:21:29 +00:00
|
|
|
size_t last_score_ = 0;
|
2020-04-13 11:24:53 +00:00
|
|
|
int last_wave_ = 0;
|
|
|
|
float last_progress_ = 0;
|
|
|
|
|
2021-08-31 21:21:29 +00:00
|
|
|
std::string message_text_;
|
|
|
|
|
|
|
|
size_t bonus_score_ = 0;
|
|
|
|
|
2020-06-30 22:23:07 +00:00
|
|
|
std::unique_ptr<eng::Image> CreateScoreImage();
|
|
|
|
std::unique_ptr<eng::Image> CreateWaveImage();
|
2021-08-31 21:21:29 +00:00
|
|
|
std::unique_ptr<eng::Image> CreateMessageImage();
|
|
|
|
std::unique_ptr<eng::Image> CreateBonusImage();
|
2020-06-30 22:23:07 +00:00
|
|
|
|
|
|
|
std::unique_ptr<eng::Image> Print(int i, const std::string& text);
|
2020-04-13 11:24:53 +00:00
|
|
|
|
|
|
|
std::unique_ptr<eng::Image> CreateImage();
|
|
|
|
};
|
|
|
|
|
2021-10-27 12:19:10 +00:00
|
|
|
#endif // DEMO_HUD_H
|