Ich erstelle ein einfaches Spiel mit SFML. Ich habe ein Hauptmenü mit den Tasten Play, Scores und Exit gemacht. Ich habe eine Klasse MainMenu
, die den grafischen Teil erstellt und die Eingabe von der Tastatur verarbeitet.SFML Game Menu Auswahlschalter
void MainMenu::InputHandler(sf::RenderWindow & window)
{
int selected= 0;
std::cout << selected;
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case sf::Event::Closed:
window.close();
break;
case sf::Event::KeyPressed:
switch (event.key.code)
{
if (selected>= 0 && selected<= 3)
{
case sf::Keyboard::S:
selected++;
std::cout << selected;
break;
case sf::Keyboard::W:
selected--;
std::cout << selected;
break;
}
}
break;
}
}
Ich nenne diese Methode in meiner gameLoop()
Funktion in Game.cpp
Klasse. Mein Problem ist, dass, wenn ich drücken ‚s‘ die Menüoption nach unten zu scrollen, um die Option 1, kommt die ausgewählten Optionen zurück zur Option 0 sofort, wie die ouptut an die Konsole im Bild unten zeigt:
Was mache ich falsch?
Vielleicht, weil Sie int ausgewählt haben = 0, wenn Sie den Eingabehandler aufrufen? –
Ich muss es initialisieren, deshalb setze ich selected = 0 – Koosshh56
Ok, und wo ist indexSelection zugewiesen? –