SDL Tastendrücke

Ninjasturm

Mitglied
Hallo;

ich hab mal wieder eine Frage zu SDL und zwar schaut euch mal diesen Code an

C++:
case SDL_KEYDOWN:
                {
                    //Beenden wenn  ESC gedrückt wurde
                    if (event.key.keysym.sym == SDLK_ESCAPE)
                        done = true;
                    break;
                    //Links bewegen
                    if (event.key.keysym.sym == SDLK_LEFT) // Wenn ich dann das compiliert habe und nach links drücke bewegt sich nichts !
                        rect.x += 5;
                    break;
                }

Kann mir vielleicht mal einer helfen so das wenn ich die Linke Pfeiltaste drücke das das Objekt nach Links bewegt wird
Und kann vielleicht mal einer eine Liste mit allen Tasten hier rein stellen

Vielen Dank im Voraus

MFG Ninjasturm
 
kenn mich jetzt nicht direkt super aus bei SDL aber ist dein synstax nicht falsch?
wenn du bei if abfragen die {} weglässt, dann wird nur die erste (nächste) anweisung an das if gebunden. Somit kommst du oben beim escape immer zum break und verlässt alles ohne auf left zu checken.
 
Nein geht immer noch nicht versuche das jetzt aber mal mit einem Zeiger vielleicht funktionierts dann

C++:
SDL_Rect catcherrect;
    catcherrect.x = 75;
    catcherrect.y = 325;
    
    //Spiel-Engine
    bool done = false;
    while (!done)
    {
        //Schauen ob eine Taste gedrückt wurde
        SDL_Event event;
        while (SDL_PollEvent(&event))
        {
            //Tastendruck oder Fensteroptionen
            switch (event.type)
            {
                //Fensteroption
            case SDL_QUIT:
                done = true;
                break;

                //Tastendruck
            case SDL_KEYDOWN:
                {
                    //Beenden wenn  gedrückt wurde
                    if (event.key.keysym.sym == SDLK_ESCAPE)
                    {
                    done = true;
                    }
                    break;
                    //Links bewegen
                    if (event.key.keysym.sym == SDLK_LEFT)
                    {
                        move -= 5;
                    }
                    break;
                }
            } // Ende
        } //Event Ende




Nun nochmal etwas mehr vom Quellcode also fast alles was mit dem Objekt zu tun hat kann mir wer jetzt vll sagen warum der sich nicht links bewegt!

Das move durch catcherrect ersetzen!
Macht aber das ganze net besser

Kann mir bitte mal jemand eine Key Liste per PN oder so senden!
 
Also ich habe auch keine Ahnung von SDL, aber hast du den Lösungsansatz von Adi | tmine denn ausprobiert?
Weil dein geänderter Quelltext zeigt dies nicht. Siehe Zeile 29.
Dein Programm wird niemals in Zeile 30 landen. Pack das "break" in die Klammern vom if, dann hast du eine Chance.
Grüße
 
Zurück