Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: SDL_Surfacen kokoraja & osan piirto?

DumTom [30.03.2008 12:22:47]

#

En ole vielä oikein jaksanut aloitella SDL koodausta.
Odottelen vielä ensi viikkoon että saan nopeemman koneen.
Mutta tuli mieleen tälläinen ongelma.
Jos mulla on tallennettuna pelialue vaikkapa taulukkoon AREA[6400][4800] ja
haluan piirtää siitä ruudulle 640*480 kokoisen alueen(fullscreen)
alkaen kohdasta STARTX,STARTY;
Kuinkahan surfaceen voisi ladata taulukon sisällön?
Vai onko jotain muuta keksintöä?
Voiko surface olla suurempi kuin ruutu?

TsaTsaTsaa [30.03.2008 13:23:57]

#

Suoraan putkan SDL-oppaasta:

void PiirraKuva(SDL_Surface *kuva, SDL_Surface *naytto, int kuvax, int kuvay, int leveys, int korkeus, int nayttox, int nayttoy)
{
    SDL_Rect kuvaalue; // alue, mikä kuvasta piirretään
    kuvaalue.x = kuvax;
    kuvaalue.y = kuvay;
    kuvaalue.h = korkeus;
    kuvaalue.w = leveys;

    SDL_Rect nayttoalue; // alue näytöllä, jolle kuva piirretään
    nayttoalue.x = nayttox;
    nayttoalue.y = nayttoy;

    SDL_BlitSurface(kuva, &kuvaalue, naytto, &nayttoalue);
}

Tuosta voi vaikka jättää parametreista pois piirrettävän alueen koon, jos se kerta on aina sama ja samoin koordinaatit, johon näytöllä piirretään, koska ne on aina 0,0.

EDIT: Niin ja kyllähän pinta (paitsi näyttöpinta) voi olla niin iso kun koneessa (tai siis ohjelmalle suotua) muistia riittää.

DumTom [30.03.2008 13:50:24]

#

Kiitos!:)

Vastaus

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

Tietoa sivustosta