Page 78 of 78

Re: Tyhmät kysymykset (I/2010)

Posted: Wed Jan 12, 2011 5:56 pm
by Ilkka
xamuli wrote:Onko taulukon soluilla maksimimäärää ja jos soluja laittaa paljon, hidastaako se peliä tai käykö jotai muuta huonoa?
En tiiä onko soluilla maksimimäärää, mutta jos laitat paljon soluja ja niissä on arvot esim. 1, niin se kyllä hidastaa peliä.
Kokeileppa tätä koodia ja vaihtele muuttujien SolujaX ja SolujaY arvoja vaikkapa 30 ja 3000 väliä. Huomaa kyllä eron kuvan lataamisnopeudessa:

Code: Select all

SolujaX = 3000
SolujaY = 3000

Dim MAP(SolujaX,SolujaY)

ukko = LoadObject("media/guy.bmp")

For x = 1 To SolujaX
    For y = 1 To SolujaY
    
        MAP( x, y ) = 1
        
    Next y
Next x

Repeat

  DrawScreen 
Forever 

Re: Tyhmät kysymykset (I/2010)

Posted: Wed Jan 12, 2011 7:55 pm
by MetalRain
xamuli wrote:Onko taulukon soluilla maksimimäärää ja jos soluja laittaa paljon, hidastaako se peliä tai käykö jotai muuta huonoa?
Ainakin tietokoneen keskusmuistin koko rajoittaa. Yksi kokonaisluku vie Coolbasicissa 4 tavua. Tällöin yhteen kibitavuun mahtuu 256 kokonaislukua eli yhteen mebitavuun 262144 kokonaislukua ja gibitavuun 268435456 kokonaislukua.

Esimerkiksi koodilla:

Code: Select all

Dim taulukko(256,256,256,256)
koitettaisiin varata 4*256⁴=17179869184 tavua eli 16 gibitavua muistia, mikä tuskin kovin monella koneella onnistuu.

Luonnollisesti myös tarpeettoman suuren taulukon (jatkuva) läpikäyminen hidastaa peliä.

Re: Tyhmät kysymykset (I/2010)

Posted: Wed Jan 12, 2011 8:10 pm
by axu
MetalRain wrote:
xamuli wrote:Onko taulukon soluilla maksimimäärää ja jos soluja laittaa paljon, hidastaako se peliä tai käykö jotai muuta huonoa?
Ainakin tietokoneen keskusmuistin koko rajoittaa. Yksi kokonaisluku vie Coolbasicissa 4 tavua. Tällöin yhteen kibitavuun mahtuu 256 kokonaislukua eli yhteen mebitavuun 262144 kokonaislukua ja gibitavuun 268435456 kokonaislukua.

Esimerkiksi koodilla:

Code: Select all

Dim taulukko(256,256,256,256)
koitettaisiin varata 4*256⁴=17179869184 tavua eli 16 gibitavua muistia, mikä tuskin kovin monella koneella onnistuu.

Luonnollisesti myös tarpeettoman suuren taulukon (jatkuva) läpikäyminen hidastaa peliä.
Johtopäätös tästä on, ettei kannata mennä tekemään neliulotteista hyxelimoottoria 256 kanttiinsa kokoisella "kuvalla". heko heko.
Itse olen huomannut, että rajat eivät tule kovin äkkiä vastaan vaikka taulukkoon säilöttäisiin objekteja (objektithan vievät luonnollisesti enemmän muistia kuin pelkät kokonaisluvut, jo pelkkä objektin osoitin vie sen verran [eli juuri nämähän voidaan tallentaa taulukkoon {objektit kuvineen ja tietoineen tallennetaan jonnekkin muualle muistin syövereihin (pitäisiköhän opetella vähentämään sulkujen käyttöä?)}]).

Re: Tyhmät kysymykset (I/2010)

Posted: Thu Jan 13, 2011 9:22 am
by Zero
Jatketaan keskustelua täällä:

Tyhmät kysymykset (I/2011)