Menu.cpp
user_6225994
plain_text
2 years ago
2.9 kB
16
Indexable
#include <SFML/Graphics.hpp>
#include <iostream>
class Menu {
public:
Menu(sf::RenderWindow& window) : window_(window) {
font_.loadFromFile("font.ttf");
title_.setFont(font_);
title_.setCharacterSize(50);
title_.setFillColor(sf::Color::White);
title_.setString("Bomberman Game Menu");
title_.setPosition(200.f, 100.f);
startButton_.setFont(font_);
startButton_.setCharacterSize(30);
startButton_.setFillColor(sf::Color::White);
startButton_.setString("Start Game");
startButton_.setPosition(300.f, 200.f);
exitButton_.setFont(font_);
exitButton_.setCharacterSize(30);
exitButton_.setFillColor(sf::Color::White);
exitButton_.setString("Exit");
exitButton_.setPosition(300.f, 250.f);
selectedItemIndex_ = 0;
}
void draw() {
window_.draw(title_);
window_.draw(startButton_);
window_.draw(exitButton_);
}
void moveUp() {
if (selectedItemIndex_ > 0) {
selectedItemIndex_--;
updateSelectedItem();
}
}
void moveDown() {
if (selectedItemIndex_ < 1) {
selectedItemIndex_++;
updateSelectedItem();
}
}
int getSelectedItemIndex() const {
return selectedItemIndex_;
}
private:
void updateSelectedItem() {
if (selectedItemIndex_ == 0) {
startButton_.setFillColor(sf::Color::Red);
exitButton_.setFillColor(sf::Color::White);
} else {
startButton_.setFillColor(sf::Color::White);
exitButton_.setFillColor(sf::Color::Red);
}
}
sf::RenderWindow& window_;
sf::Font font_;
sf::Text title_;
sf::Text startButton_;
sf::Text exitButton_;
int selectedItemIndex_;
};
int main() {
sf::RenderWindow window(sf::VideoMode(800, 600), "Bomberman Game");
Menu menu(window);
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
window.close();
}
if (event.type == sf::Event::KeyPressed) {
if (event.key.code == sf::Keyboard::Up) {
menu.moveUp();
}
if (event.key.code == sf::Keyboard::Down) {
menu.moveDown();
}
if (event.key.code == sf::Keyboard::Return) {
if (menu.getSelectedItemIndex() == 0) {
// Start the game
std::cout << "Starting the game!" << std::endl;
} else {
// Exit the game
window.close();
}
}
}
}
window.clear();
menu.draw();
window.display();
}
return 0;
}
Editor is loading...