Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Kirjoitus kenttä

Sivun loppuun

mika132 [12.07.2010 17:00:32]

#

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.

tgunner [12.07.2010 17:12:16]

#

Päähän sattuu.

vehkis91 [12.07.2010 18:44:54]

#

niin, siis mitä sää yrititkään tehdä, mää ainakaa saanu tosta mitää selvää... :S

Grez [12.07.2010 19:27:22]

#

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.

mika132 [12.07.2010 20:37:00]

#

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.

Macro [12.07.2010 21:18:33]

#

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.

ankzilla [12.07.2010 21:51:31]

#

Kirjoituskenttä on yhdyssana.

mika132 [12.07.2010 21:53:13]

#

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

Macro [12.07.2010 22:10:59]

#

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.

mikkop92 [12.07.2010 22:27:04]

#

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/


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta