Olen seurannut Heikin SDL-oppaan ohjeita ja saanut näppäinten lukemisen toimimaan perusnäppäimillä, mutta joidenkin näppäinten kuten <>()[]{};: lukeminen ei onnistu.
... SDL_PollEvent(&tapahtuma); nappi = SDL_GetKeyState(NULL); if(nappi[SDLK_LESS]) ...
Viimeisen rivin if-lauseen ehto pysyy epätotena, vaikka kuinka kyseistä näppäintä painaisi. Mahtaako tässä olla ongelmana erot suomalaisen ja jenkkinäppäimistön välillä, vai missä vika on?
Minulla ei ole paljon kokemusta SDL:stä, muuta eikös nuo <, >, [, ] jne ole näppäinyhdistelmiä?
Eikö esim.
if (nappi[SDLK_LESS] && nappi[SDLK_RSHIFT])
toimisi? (En kylläkään kokeillut)
No < -merkki tulee ainakin yhdestä näppäimestä. Jos sen saisi toimimaan, niin vastakkaisen merkin saisi selvittämällä SHIFTien tilan. Mutta siis kun edes tuo SDLK_LESS ei toimi, niin siitä ei oikein ole apua.
Sitten pitää vain selvittää missä on jenkkinäppäimistössä <-merkki.
Käsittääkseni samassa kohtaa, kuin pilkku suomalaisessa. Mutta SDLK_COMMA toimii kyllä ihan pilkkuna, eikä < -merkkinä.
Voi olla, että SDL:n "suomenkielisen näppäimistön tuessa" on virhe(jos siinä sellasia on...).
Joka tapauksessa näppäimet voi etsiä itse tyyliin:
SDL_Event event; SDL_PollEvent(&event) key = event.key.keysym.sym; // Palauttaa pohjassa olevan näppäimen printf("%i\n", key);
PS. '<' == 92 ja SDLK_LESS == 60
Ah, no niinpäs tietysti voikin, olisihan tuo pitänyt itsekin oivaltaa. :) Kiitoksia, nyt toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.