Eli teinpäs itse enginen tällä kertaa alusta asti ja tulos on se, että peli jumittuu jostain syystä. Se menee "Ei vastaa" tilaan.
controls.h ei ole vielä mitään sisältöä niin en laittanut sitä tähän.
Miten se menee? Milloin se menee?
Sinulla on tuolla silmukassa ainakin
if(nappi[SDLK_ESCAPE]) { pois=true; }
mutta luet näppäinten tilan ainoastaan kerran ennen silmukan alkua.
Siis se menee heti kun peli aukeaa. Kuvat se kyllä ehtii piirtämään, mutta sen jälkeen peli on aivan jumissa. Pelkkä tiimalasi pyörii ja tehtävänhallinnasta näkee, että ei vastaa.
Kuten hunajavohveli jo mainitsi, et lue syötteitä pääsilmukassa jolloin sitä ei voi lopettaakaan. Lisäksi silmukka syö ilman delayta prossutehoa hyvinkin suurella kouralla. Nämä molemmat tekevät aiheuttavat sen että peli jumahtaa kiinni kympillä.
Ongelman kuuluisi ratketa siirtämällä seuraava rivi pääsilmukkaan (eli tuon rivin while(pois==false){ alle):
nappi = SDL_GetKeyState(NULL);
sqwiik kirjoitti:
Ongelman kuuluisi ratketa siirtämällä seuraava rivi pääsilmukkaan ... SDL_GetKeyState(NULL);
SDL_GetKeyState ei päivitä näppäinten tiloja vaan palauttaa vain osoittimen taulukkoon. Silmukassa pitäisi joko lukea viestit tai kutsua funktiota SDL_PumpEvents.
Ah joo, anteeksi väärä tieto. Ei pitäisi vastailla mitään väsyneenä...
Aihe on jo aika vanha, joten et voi enää vastata siihen.