Char* Eingabe mit SDL



  • Ich versuch grad ein Menü für ein Spiel zu Programmieren. Wie kann man z.B. einen Namen eingeben in SDL? Das versteh ich irgendwie nicht. Die ttf lib hab ich drin und ich kann auch sachen ausgeben, nur beim eingeben hakts.



  • die sdl-events angucken und feststellen, ob eine taste gedrueckt worden ist.



  • Oder du machst es so wie immer, nur das ist es halt nicht so portabel.

    Bye, TGGC (Das Eine, welches ist.)



  • Also, so würd ich das machen.

    Strktur anlegen

    struct text_field {
     int x;         //x-Position
     int y;         //y-Position
     int w;         //Breite
     int h;         //Höhe
     char content[32];      //Inhalt
     }
    

    Variablen

    text_field *selected;
     text_field name;
    

    Überprüfen ob Button geklickt(in SDL_MOUSEBUTTONDOWN)

    if(((event.button.x > name.x)&&(event.button.x < name.x + name.w)&&((event.button.y > name.y)&&(event.button.y < name.y + name.h))) {
     select = &name;
     }
    else {
     select=NULL;
     }
    

    in SDL_Keydown

    if(select != NULL)
    switch(event.key.sym.keysym) {
     case SDLK_A:
      strcat(select->name, "a");
     break;
     case //... andere Tasten
     }
    

    Und beim Rendern

    SDL_BlitSurface(text_field_Background, NULL, window, /*SDL_Rect mit Position*/);
     SDL_Print(name.content, name.x, name.y); //ka wie die heißt
    

Anmelden zum Antworten