-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMenu.h
57 lines (50 loc) · 1.44 KB
/
Menu.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef MENU_H
#define MENU_H
#include <SFML/Graphics.hpp>
#include "Manager.h"
#include "Audio.h"
#define BUTTONCOUNT 2
#define INFOCOUNT 4
using namespace sf;
class Menu
{
public:
Menu(RenderWindow& window, Color background_color, Font& font, Texture* logo_texture, Manager& manager, Audio& audio, std::string default_path = "");
void update(Time DeltaTime);
void draw(RenderTarget* target = nullptr);
void appear(double progress);
void manageKey(Event::KeyEvent key, bool released = false);
void manageMouse(Event::MouseButtonEvent mouseButton, bool released = false);
void updateMouse(Event::MouseMoveEvent mouseMove);
private:
RenderWindow& window;
Manager& manager;
Audio& audio;
Vector2f middle;
Color bg;
Texture* logo_texture;
Sprite logo;
bool exiting_flag = false;
enum Texts {
AICup, Bomberman, file, error
};
Text info[INFOCOUNT];
enum Button {
choose, play
};
Text buttons[BUTTONCOUNT];
Button selected = Button::choose;
IntRect selectboxes[BUTTONCOUNT];
const Color selected_button_color = Color(30, 180, 250);
const Color normal_button_color = Color(250, 250, 250);
const Color color_difference = normal_button_color - selected_button_color;
const Time button_color_change_time = seconds(0.25);
const char* fileTypes[1] = { "*.json" };
std::wstring log_dir;
std::string default_dir;
const Time message_display_time = seconds(2);
Time message_timer = Time::Zero;
void chooseFile();
void load();
};
#endif // !MENU_H