Eli nyt on ongelma suuri. Mietin ensin, että tekisn nappaimisto.h tiedoston joka olisi täysi if sota. Eli kirjoitusvalikon meinasin tehdä niin, että ensin kaikki SDL nappulat katsotaan yhdessä paikassa ja tehdään / kirjoitetaan napin asia, no sitten tuli mieleen, että ei ihan viikossa taideta tehdä ja, että tuollainen on varmasti netissä valmiina, mutta en hoksaa oikeita hakusanoja.
Päähän sattuu.
niin, siis mitä sää yrititkään tehdä, mää ainakaa saanu tosta mitää selvää... :S
Minun mielestäni jos toivoo muilta apua, voisi arvostaa sen verran muidenkin aikaa, että kirjoittaisi viestin josta saa selvää.
On aika itsekästä kirjoittaa viesti niin nopeasti kuin mahdollista, jolloin ihmiset jotka hyvää hyvyyttään haluaisivat auttaa, joutuvat käyttämään monin verroin enemmän aikaa viestin lukemiseen.
No selitänpä sitten paljon helpommin:
Miten tehdään tekstikenttä johon voi kirjoittaa tekstiä. Teksti tallentuu muuttujalle ja sitä voi käyttää jälkeenpäin erillaisiin asioihin. Osaan tehdä sen consoliin, mutta mites tuohon SDL päälle.
Googlella voi esimerkiksi etsiä C++ SDL text input
. Voit myös luoda muuttujan teksti
, johon lisäät aina merkin kun käyttäjä painaa jotain näppäintä. Muistaakseni SDL-oppaassa kerrotaan näppäinten kuuntelusta.
Kirjoituskenttä on yhdyssana.
Juu, mutta juuri siinä on se ongelma. Tuo on aivan käsittämättömän pitkä homma, kun joutuu joka napille tekemään oman merkin tulostuksen jne.
Siis miten ymmärsin, että tuo tehtäisiin niin:
if (nappi[SDL_w]) merkki="w"; if (nappi[SDL_a]) merkki="a";
siis vain esimerkkinä heitin tuollaisen. Eikä tuost ainputistakaan mitään selvää tunnu saavan. :o
napit = {"a", "b", "c"}; for(i = 0; i < len(napit); i++) { if(SDL_napit[i]) { // Miten se C:ssä sitten toimiikaan. merkki = napit[i]; } }
Jotain tohon tyyliin. Tuo sitten ikuiseen while-silmukkaan, ja hyvin toimii. En ole koodista niinkään varma, mutta pseudo-esimerkkinä tuo olisi noin.
SDL osaa myös itse automaattiseti muuntaa UNICODE-merkistön mukaiset koodit näppäinpainalluksista. Näitä arvoja voi ainakin perus ASCII:n (0-127) osalta käyttää suoraan.
Kyseinen arvo löytyy SDL_KeyboardEvent:in keysym-jäsenestä.
Tällä periaatteella (koodi ei toimi suoraan):
char merkki=keyevent.keysym.unicode;
Tämä ominaisuus pitää erikseen laittaa päälle SDL_EnableUNICODE-funktiolla.
Tässä linkki wikiin, jota itse ainakin käytän SDL-dokumentaationa:
http://www.libsdl.org/cgi/docwiki.cgi/
Aihe on jo aika vanha, joten et voi enää vastata siihen.