Olen mietiskellyt, että miten olisi järkevintä toteuttaa kuvien piirtämien tai oikeastaan säilöminen projektissa. Jos vaikka ajatellaan, että esim. pelissä pitää piirtää monta kertaa ruudulla olevia esineitä, joidenka paikka voi kuitenkin muuttua vähän, tai ne voivat kadota vähäksi aikaa ruudulta. Siinähän tapauksessa ei voi piirtää kaikkia kuvia yhteen kuvaan, jonka sitten piirtäisi. Eihän?
Itse ongelmahan on se, että kuviahan ei voi määritellä globaaleiksi muuttujiksi, jolloin kuvien piirtämisfunktioille joutuu antamaan miljoona sata seitsemänkymmentä parametriä, jos haluaa, että yksi funktio voi tehdä kaiken piirtämisen. Mietinkin, että olisiko järkevin ratkaisu sijoittaa kaikki kuvat esim. yhteen tyyppikokoelmaan, jota voidaan sitten funktioissa käydä läpi ja piirtää sen avulla, koska tyypithän ovat globaaleja.
Otan mielellään vastaan parempia ideoita asian toteuttamiseksi. Tuuminkin, että kysymys on kuitenkin relevantti myös muille ohjelmointikielille. Toivottavasti vastaus ei ole mikään äärimmäisen yksinkertainen, minkä olen vain sivuuttanut koko ajan ja en ole tajunnut. : D
Kuvien piirtäminen/säilöminen
Kuvien piirtäminen/säilöminen
2X - in English viewtopic.php?f=18&t=3057
2X - suomeksi viewtopic.php?f=11&t=3058
Olen Jop Studio vanhalta foorumilta.
2X - suomeksi viewtopic.php?f=11&t=3058
Olen Jop Studio vanhalta foorumilta.
Re: Kuvien piirtäminen/säilöminen
Tottakai kuvat voivat olla globaaleita muuttujia. Kuvien "handle" on ihan tavallinen integer muuttuja joten pystyt tekemään siitä globaalin. Jos sinä haluat paljon kuvia joilla kaikilla on eri sijainti ja niitä mahdollisesti liikutellaan tai piilotellaan välillä, niin voit ihan hyvin käyttää objekteja ja antaa DrawScreenin huolehtia piirtämisestä. Sitten sinun pitää vain huolehtia oikeasta järjestyksestä objektien latauksessa tai järjestellä niitä ObjectOrderilla että ne piirtyvät haluamallasi tavalla päällekkäin. Tyyppikokoelma jossa lista kuvista luonnollisesti toimii myös.Szanne wrote:Olen mietiskellyt, että miten olisi järkevintä toteuttaa kuvien piirtämien tai oikeastaan säilöminen projektissa. Jos vaikka ajatellaan, että esim. pelissä pitää piirtää monta kertaa ruudulla olevia esineitä, joidenka paikka voi kuitenkin muuttua vähän, tai ne voivat kadota vähäksi aikaa ruudulta. Siinähän tapauksessa ei voi piirtää kaikkia kuvia yhteen kuvaan, jonka sitten piirtäisi. Eihän?
Itse ongelmahan on se, että kuviahan ei voi määritellä globaaleiksi muuttujiksi, jolloin kuvien piirtämisfunktioille joutuu antamaan miljoona sata seitsemänkymmentä parametriä, jos haluaa, että yksi funktio voi tehdä kaiken piirtämisen. Mietinkin, että olisiko järkevin ratkaisu sijoittaa kaikki kuvat esim. yhteen tyyppikokoelmaan, jota voidaan sitten funktioissa käydä läpi ja piirtää sen avulla, koska tyypithän ovat globaaleja.
Otan mielellään vastaan parempia ideoita asian toteuttamiseksi. Tuuminkin, että kysymys on kuitenkin relevantti myös muille ohjelmointikielille. Toivottavasti vastaus ei ole mikään äärimmäisen yksinkertainen, minkä olen vain sivuuttanut koko ajan ja en ole tajunnut. : D
Re: Kuvien piirtäminen/säilöminen
Testasin kerran, että voivatko kuvat olla globaaleja muuttujia ja tulin johtopäätökseen, etteivät voivat olla. Olin siis tupeksinut jotain muuta koodin kanssa silloin.. Objekteja en ole vähään aikaan käyttänyt, niin en tajunnut niiden käyttömahdollisuuksia. Pitääpä laittaa korvan taakse.
2X - in English viewtopic.php?f=18&t=3057
2X - suomeksi viewtopic.php?f=11&t=3058
Olen Jop Studio vanhalta foorumilta.
2X - suomeksi viewtopic.php?f=11&t=3058
Olen Jop Studio vanhalta foorumilta.
Re: Kuvien piirtäminen/säilöminen
Itse asiassa jopa Global komennon esimerkki esittelee, kuinka kuva voi olla globaali muuttuja. #%$ merkit globaalien muuttujien nimissä taisivat aiheuttaa jotain jännyyksiä.
Re: Kuvien piirtäminen/säilöminen
Muistaakseni, jos esittelee muuttujan globaaliksi käyttäen "As"-avainsanaa, muuttujanimen perässä olevat erikoismerkit joilla normaalisti määriteltäisiin muuttujan tyyppi (#, $), jne., ovat vain osa muuttujanimeä.
Eli
Global a$ As Float
tekee float-tyyppisen muuttujan jonka muuttujanimi on "a$".
Eli
Global a$ As Float
tekee float-tyyppisen muuttujan jonka muuttujanimi on "a$".
Re: Kuvien piirtäminen/säilöminen
En ollut sitten katsonut tuota Global-komennon esimerkkiä ollenkaan.. Päättelin, että kuvat eivät voi olla globaaleja, koska en tiennyt tuota kuvan handle-juttua, koska siis esittelin kaikki muut globaalit muuttujat As Integer etc. Kiitoksia neuvoista!
2X - in English viewtopic.php?f=18&t=3057
2X - suomeksi viewtopic.php?f=11&t=3058
Olen Jop Studio vanhalta foorumilta.
2X - suomeksi viewtopic.php?f=11&t=3058
Olen Jop Studio vanhalta foorumilta.