Kirjoittaja: zacura
Kirjoitettu: 23.07.2002 – 23.07.2002
Tagit: koodi näytille, vinkki
Dynaamisia taulukoita käyttämällä voi luoda niin suuria taulukoita kun perusmuisti antaa myötä (itselläni sain 320x200 kokoisen integer taulukon). Käynnistä qb parametrilla /ah ja lisää koodiin alkuun tämä:
rem $DYNAMIC
Muistakaa lapset se, että yksi INTEGER vie 2 tavua muistia, eli 320x100 kokoiseen INTEGER taulukkoon mahtuu 64000 tavua == ruudullinen kamaa.
Tätäpä pitää hyödyntää... Mutta toimiiko EXE:ssä?
Integer:n viemä tavumäärä ei ole aina vakio, se voi olla eri kokoinen käyttöjärjestelmästä ja kehitysympäristöstä riippuen. Yleisin on kuitenkin tuo 2 tavua
Jos integer on 2 tavua niin eikös 320 * 200 taulukko vie 128 000 tavua?
Pitäs toimia exe:ssäkin, mutta voi aiheuttaa virheitä jos ei ole tarpeeksi vapaata muistia
ghost, loogisesti 320 * 200 * 2 = 128 000 tavua.
Eli jos haluaa 320x200 kokoisen tuplabufferin mode13H:n niin toki:
DIM dblbuf(320*100) AS INTEGER
Hmm... Kuinkas sitten 320*100 -taulukkoon saadaan punainen piste kohdalle 300,180? Vai täytyykö tässä jo kikkailla?)
Kikkailemaan joutuu. Sovella vaikka "Kahden värin pakkaaminen yhteen tavuun" vinkin koodia, selviät pienillä muutoksilla.
tästä on hyötyä