switch case



  • ich habe ein problem mit einer switch abfrage. undzwar habe ich meinen code wie folgt :

    switch (event.type)
    			{
    			case sf::Event::MouseMoved:
    				MousePos  = sf::Mouse::getPosition();
    				WindowPos = window.getPosition();
    				MousePos.x  = MousePos.x - WindowPos.x - 8;
    				MousePos.y  = MousePos.y - WindowPos.y - 30;
    			break;
    
    			case sf::Event::KeyPressed:
    				if (event.key.code == sf::Keyboard::Add)
    				{
    					for (int x = 0; x < widht; x++)
    					{
    						for (int y = 0; y < height; y++)
    						{
    							Map[x][y].SetSize(true, 0.1, 0.1);
    						}
    					}
    				}
    				else if (event.key.code == sf::Keyboard::Divide)
    				{
    					for (int x = 0; x < widht; x++)
    					{
    						for (int y = 0; y < height; y++)
    						{
    							Map[x][y].SetSize(false, 0.1, 0.1);
    						}
    					}
    				}
    			break;
    
    			default :
    				break;
    			}
    

    wie man sieht benutze ich sfml. er registriert zwar, dass ich plus drücke aber nicht minus. warum ist das so?
    schonmal danke! 😃



  • Ich kenne smfl jetzt nicht, bin mir aber ziemlich sicher, dass "sf::Keyboard::Divide" nicht der Code für "Minus" ist.



  • 1. da steht "sf::Keyboard::Divide" was nicht für die minus-taste steht.

    2. dein default ist relativ unnötig.



  • sry ich meinte mincht minus sondern dass hier "/" halt geteilt durch



  • Und was steht stattdessen in event.key.code?



  • "sf::Keyboard::Divide" passt schon wenn du die '/'-taste möchtest. der fehler könnte auch in "Map::SetSize" stecken, je nach dem was da implementiert ist wenn der erste parameter false ist.

    btw heisst es "width"...


  • Mod

    2. dein default ist relativ unnötig.

    Die Warnung, die sonst kommt, auch.



  • Finde jetzt die Fehlerbeschreibung mangelhaft... Wie jetzt er registriert nicht, dass du '/' drückst? Meinst du da passiert nicht, wass soll? Das heißt noch lange nicht, dass sfml dies nicht registriert hat...



  • Mal eine blöde Frage:
    Welche Taste drückst du denn?
    Die im Nummernblock zwischen Num-Lock und *
    oder Shift-7 ?

    Die Tastencodes sehen mehr nach der US-Tastatur aus. Und das ist / links neben der rechten Shift-Taste. Aber das ist dann wohl die Slash-Taste.


Anmelden zum Antworten