Bonjour,
Je souhaiterais créer une classe InputManager pour me faciliter les Input le problème c'est que j'arrive pas à faire ma fonction pour que la pression sur le boutton sois unique je m'explique si on fait le code de base
if (sf::Keyboard.isKeyPressed(sf::Keyboard::A))
{
std::cout << "bou" << std::endl;
}
bou vas s'afficher autant de fois que je reste appuyer sur le bouton A moi je voudrais qu'il ne s'affiche qu'une fois est que pour qu'il ce réaffiche il faudrais relacher le boutton A puis réappuyer
mais je doit pas avoir la bonne logique donc ça ne fonctionne pas voici mon code
bool InputManager::keyboardPressed(sf::Keyboard::Key key)
{
if (!m_oldKeyboard.isKeyPressed(key) && m_keyboard.isKeyPressed(key))
return true;
return false;
}
sf::Keyboard m_keyboard;
sf::Keyboard m_oldKeyboard;
Après tous est mis dans le main
#include <SFML/Graphics.hpp>
#include "Player.h"
#include "InputManager.h"
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "RPG");
window.setVerticalSyncEnabled(true);
window.setFramerateLimit(60);
Player player;
sf::Keyboard key;
sf::Keyboard oldKey;
InputManager input(key, oldKey);
player.LoadContent();
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
if (input.isKeyboardPressed(sf::Keyboard::Escape))
window.close();
if (input.keyboardPressed(sf::Keyboard::A))
std::cout << "d" << std::endl;
}
player.Update(&input);
window.clear(sf::Color::White);
player.Draw(window);
window.display();
oldKey;
}
}
Mais ça ne fonctionne donc pas merci de m'aider à que cela fonctionne