Correction de l'alignement des règles
This commit is contained in:
parent
6dc9e706f9
commit
6dbea09bcb
|
@ -0,0 +1,30 @@
|
|||
#ifndef __PTF_RULES_HPP__
|
||||
#define __PTF_RULES_HPP__
|
||||
|
||||
#include "manager.hpp"
|
||||
#include "state.hpp"
|
||||
|
||||
/**
|
||||
* La classe Rules affiche les règles du jeu
|
||||
*/
|
||||
class Rules : public State {
|
||||
private:
|
||||
sf::Sprite background;
|
||||
|
||||
public:
|
||||
Rules(Manager& manager);
|
||||
virtual ~Rules();
|
||||
|
||||
/**
|
||||
* Traite l'événement donné
|
||||
*/
|
||||
virtual void processEvent(const sf::Event& event);
|
||||
|
||||
/**
|
||||
* Demande le dessin d'une frame
|
||||
*/
|
||||
virtual void frame();
|
||||
};
|
||||
|
||||
|
||||
#endif
|
|
@ -31,8 +31,9 @@ void Game::processEvent(const sf::Event& event) {
|
|||
getManager().popState();
|
||||
}
|
||||
|
||||
// appui sur échap : échange entre le mode pause et normal
|
||||
if (event.key.code == sf::Keyboard::Escape) {
|
||||
// appui sur retour échap : échange entre le mode pause et normal
|
||||
if (event.key.code == sf::Keyboard::Escape ||
|
||||
event.key.code == sf::Keyboard::BackSpace) {
|
||||
if (getMode() == Game::Mode::NORMAL) {
|
||||
setMode(Game::Mode::PAUSED);
|
||||
} else if (getMode() == Game::Mode::PAUSED) {
|
||||
|
|
17
src/menu.cpp
17
src/menu.cpp
|
@ -37,10 +37,17 @@ void Menu::processEvent(const sf::Event& event) {
|
|||
}
|
||||
}
|
||||
|
||||
// touche entrée : on exécute le choix sélectionné
|
||||
if (event.key.code == sf::Keyboard::Return) {
|
||||
// touche entrée ou espace : on exécute le choix sélectionné
|
||||
if (event.key.code == sf::Keyboard::Return ||
|
||||
event.key.code == sf::Keyboard::Space) {
|
||||
actions[selection]();
|
||||
}
|
||||
|
||||
// touche retour ou échap : on revient au menu principal
|
||||
if (event.key.code == sf::Keyboard::BackSpace ||
|
||||
event.key.code == sf::Keyboard::Escape) {
|
||||
loadMainMenu();
|
||||
}
|
||||
}
|
||||
|
||||
// au clic, on exécute le choix pointé s'il y a lieu
|
||||
|
@ -82,11 +89,13 @@ void Menu::frame() {
|
|||
// dessin du fond
|
||||
window.clear(sf::Color::White);
|
||||
|
||||
// on met à l'échelle le fond de telle sorte qu'il soit toujours
|
||||
// entièrement visible en largeur
|
||||
float bg_scale = size.x / background.getLocalBounds().width;
|
||||
background.setScale(bg_scale, bg_scale);
|
||||
|
||||
background.setPosition(sf::Vector2f(
|
||||
size.x / 2 - background.getGlobalBounds().width / 2,
|
||||
size.y - background.getGlobalBounds().height
|
||||
0, size.y - background.getGlobalBounds().height
|
||||
));
|
||||
|
||||
window.draw(background);
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
#include "rules.hpp"
|
||||
#include <cmath>
|
||||
|
||||
Rules::Rules(Manager& manager) : State(manager) {
|
||||
background.setTexture(getResourceManager().getTexture("bg_rules.png"));
|
||||
getWindow().setFramerateLimit(Manager::FPS);
|
||||
}
|
||||
|
||||
Rules::~Rules() {}
|
||||
|
||||
void Rules::processEvent(const sf::Event& event) {
|
||||
// appui sur échap, retour, entrée, espace : on dépile l'état
|
||||
if (event.type == sf::Event::KeyPressed) {
|
||||
if (event.key.code == sf::Keyboard::Escape ||
|
||||
event.key.code == sf::Keyboard::BackSpace ||
|
||||
event.key.code == sf::Keyboard::Return ||
|
||||
event.key.code == sf::Keyboard::Space) {
|
||||
getManager().popState();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Rules::frame() {
|
||||
sf::RenderWindow& window = getWindow();
|
||||
sf::Vector2f size = (sf::Vector2f) window.getSize();
|
||||
|
||||
// titre de la fenêtre
|
||||
getManager().setTitle(L"Règles");
|
||||
|
||||
// on s'assure d'être dans la vue par défaut (pas de zoom, 0x0 en haut gauche)
|
||||
getManager().useGUIView();
|
||||
|
||||
// affichage du fond
|
||||
window.clear(sf::Color(22, 22, 22));
|
||||
|
||||
// on met à l'échelle le fond de telle sorte qu'il soit toujours
|
||||
// entièrement visible en hauteur
|
||||
float bg_scale = size.y / 1100;
|
||||
background.setScale(bg_scale, bg_scale);
|
||||
|
||||
background.setPosition(sf::Vector2f(
|
||||
size.x / 2 - background.getGlobalBounds().width / 2,
|
||||
size.y / 2 - 720 * bg_scale
|
||||
));
|
||||
|
||||
window.draw(background);
|
||||
window.display();
|
||||
}
|
Loading…
Reference in New Issue