Classic ei tue sisäkkäisiä taulukoita, koska kyseessä ei ole vahvasti tyypitetty eikä dynaamisesti tyypitetty kieli. Ts. taulukko sinänsä ei ole oma tietotyyppinsä.
CoolBasic henkilökuntaa Johtava Suunnittelija CoolBasic V3, CoolBasic Classic
Tuleeko taulukoille minkäänlaisia osoittimia, että niitä voitaisiin käyttää sitten vaikka Tyypin kenttänä? En oikein ole noista ennemmin olleista taulukko keskusteluista päässyt jyvälle, niin kysyin sitte näin.
Solar Eclipse
Meneillä olevat Projektit:
Solar Engine - Modernin OpenGL rajapinnan päällä toimiva 3D ja 2D pelimoottori.
Voisiko Classiciin lisätä mahdollisuuden ladata kuvia, ääniä, videoita, yms. tiedoston keskeltä tai muistipaloista?
Koska nyt niitä on oikeastaan mahdoton tallentaa samaan tiedostoon järkevästi.
Joo, olen itse tehnyt vähän tuontyylisen kameramoottorin(aktiiviset ja ei-aktiiviset kamerat) tämän hetkiselle CB:lle ja toimii hienosti.
Kuulostaa hyvältä tuo kameran kääntely, mikäli ymmärsin oikein.
Jep, kameran kääntelyä olen halunnut jo vuoden ajan ja tuossahan se on
Voiko muuten objekteille laittaa pyörimissulavuuden kuin ennenkin, nimittäin joissain tapauksissa esim. 90 asteen käännökset ovat parempia kuin liukuva?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua
axu wrote:Voiko muuten objekteille laittaa pyörimissulavuuden kuin ennenkin, nimittäin joissain tapauksissa esim. 90 asteen käännökset ovat parempia kuin liukuva?
En näe tuossa mitään mieltä, sillä grafiikkamoottori ei blittaa esipyöritettyä kuvaa (kuten wanha CB tekee) vaan piirtää teksturoidun nelikulmion näytönohjaimella. Kulman voi siis asettaa juuri niin tarkasti, kuin CBC:n liukulukutietotyyppi rajoittaa. Siis ainakin teoriassa esimerkiksi jo vain 10^-5:n asteen muutos kiertokulmassa tuottaa erilaisen piirtotuloksen.
Kuvaamasi pyörityksen voi toteuttaa helposti myös itse, vaikkapa näin:
Mutta tarkkoihin kulmiin asettaminen ei oikein toimisi esim. pointobject:in kanssa(paitsi jos pointobject:in jälkeen asettaa tarkan arvon), tai jos haluaa liikuttaa objektia tietyssä kulmassa(no tämäkin kyllä on kierrettävissä tallentamalla erikseen objektin piirtokulma ja liikkumiskulma, jota käytetään sitten translateobject:in kanssa). Eihän tämä kyllä mikään välttämättömyys ole, mietin vain
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua
axu wrote:Mutta tarkkoihin kulmiin asettaminen ei oikein toimisi esim. pointobject:in kanssa(paitsi jos pointobject:in jälkeen asettaa tarkan arvon), tai jos haluaa liikuttaa objektia tietyssä kulmassa(no tämäkin kyllä on kierrettävissä tallentamalla erikseen objektin piirtokulma ja liikkumiskulma, jota käytetään sitten translateobject:in kanssa). Eihän tämä kyllä mikään välttämättömyys ole, mietin vain
PointObject nimenomaan asettaisi objektin "tarkkaan" kulmaan, pyörimisarvoja/sulavuutta ei 3d-kiihdytyksen kanssa tarvita eikä tueta. Se, miten pieni muutos kulmassa oikeasti näkyy ruudulla asti, riippuu siitä miten isona ko. objekti näkyy ruudulla (vrt. 2x2 pikselin objekti tai 512x512 pikselin objekti), mutta sisäisesti ja rautatasolla pyöritys voidaan tehdä juuri niin tarkkaan kuin liukuluvut antavat myöten. Siinä samalla kuvien latausnopeus nousee roimasti, koska pyöritystä ei tehdä latauksen yhteydessä softalla, eli CBC-ohjelmat latautuvat suurienkin kuvamäärien kanssa paljon nopeammin kuin edeltäjässään.
[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
Todennäköisesti tarkoitettiin CCE:n esimerkin mukaista, Koodarin esimerkissähän annetaan neljä koordinaattia, mutta vain kaksi kulmaa.
Kysyin Zerolta jokunen aika sitten teksturoidun kolmion piirrosta (käytännössä sama, kolmio on tietokonegrafiikassa perinteisempi polygoni) ja siitä ei ainakaan silloin varmaa tietoa ollut. Ominaisuus olisi varsin muikea, mutta eipä tuo maailmaa kaada jos se puuttuu.
Juu juuri tuota jälkimmäistä tietenkin tarkoitin
Kyllähän tuommoisen kai sitten viime kädessä itsekin osaisi tehdä, vaikka siihen ei suoraa tukea olisikaan(syö vaan enemmän tehoja?)
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua
En uskalla yksityiskohdista sanoa, mutta nykyisessä Cool VESissä olisi useampikin mahdollinen tapa tuon toteuttamiseen. Mitään teknistä estettä asialle ei siis ole vaan ongelma on ainoastaan siinä, että käyttäjän päästäminen puukottamaan enginen sisäistä dataa on potentiaalisesti vaarallista. Toisaalta myös julkisen rajapinnan luominen kuvatun efektin toteuttamiseen sotisi objektimoottoria ja muuta grafiikanpiirtologiikkaa vastaan, sillä kyseessä on kuitenkin vain 2D-in-3D-moottori. Tämä ei kuitenkaan tarkoita, että ominaisuus poissuljettujen ideoiden listalla.
CoolBasic henkilökuntaa Tech-kehittäjä CoolBasic Classic, Cool VES
Vaikka tuohon ei olisi suoraan valmiita komentoja, niin kyllähän opengl kutsuja voi suoritella hieman ulkopuolisemmin esimerkiksi muistia sörkkimällä dll avulla. Tosin riippuen dll-tuen kehittyneisyydestä voi olla mahdollista hyväksikäyttää suoraan winAPInan read- ja writeprocessmemory komentoja ja myrkyttää itsensä lennosta ilman ulkoista apua. Toinen vaihtoehto olisi laittaa piirtoon omat välikappaleet winapihookeilla. Tosin näitä käyttäessä saattaa hajottaa kaiken pahasti ja niiden winettyvyys on hieman kyseenalaista.
Olisi hienoa, jos CBC :hen voisi lisätä omia functioita, siten ettei niitä tarvitsisi liittää koodiin! Kun koodi pakataan .exe :ksi, niin CBC lisää functiot exeen samalla tapaan, kuten nykyisessä versiossa se lisää oletusfunctiot, kuten esimerkiksi:
[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->