Koodailin qb:lle tämmösen pienen ohjelman, joka tekee paletin, jossa on 216 eri väriä (löytyy kaikki mahdolliset värit mitä sai mahtumaan). Rgb funktiolle annetaan punaisen, vihreän ja sinisen värin arvo väliltä 0-5, sitten funktio sotkee niistä arvoista luvun jota voi sitten käyttää piirtelyssä ruudulle. esim. PSET (x,y), rgb(5,5,5) piirtää kohtaan x,y valkoisen pisteen (tosi helppoa :). Kai tästä on jotain pikku iloa pikku koodaajille jotka koodaavat pikku ohjelmiaan... (ja miksei isompiakin...)
DECLARE FUNCTION rgb! (red!, green!, blue!) SCREEN 13 'muokataan paletti sopivaksi OUT &H3C8, 0 FOR r = 0 TO 5 FOR g = 0 TO 5 FOR b = 0 TO 5 OUT &H3C9, r * 12.6 OUT &H3C9, g * 12.6 OUT &H3C9, b * 12.6 NEXT b, g, r 'ja aletaan piirtelemään FOR r = 0 TO 5 FOR g = 0 TO 5 FOR b = 0 TO 5 LINE (x * 4, y * 4)-(x * 4 + 3, y * 4 + 3), rgb(r, g, b), BF 'piirretään värit x = x + 1 NEXT b, g x = 0 y = y + 1 NEXT r FUNCTION rgb (red, green, blue) rgb = red * 36 + green * 6 + blue 'lasketaan väri END FUNCTION
Ei tarvitse antaa kommentteja jos ei huvita... :P
joo-o..
mitä hyötyä tästä siis oli?
Eihän tuo RGB-komento VB:n omalle pärjää, mutta parempaa on hankala tehdä 256 värin paletilla :)
Ihan kiva. Hyötyähän tästä voi olla monessakin tapauksessa (vaikka moni lienee tällaisen koodannut jo aiemmin), esim. Hipohan käytti tämäntapaista tuossa pienessä QB-raytreiserissään joka löytyy koodivinkeistä.
Toisaalta, pitääkö näistä vinkeistä juuri snakarille aina hyötyä ollakaan.
Muuten suosittelisin käyttämään pienempää tabstoppia :)
Ai niin ja vielä se, että nuo funktion parametrien tyypit kannattanee määritellä INTEGER:iksi, kuten myös paluuarvo. Laskee nääs vähän nopeammin kun ei tarvitse flotareilla leikkiä.
Paluuarvo INTEGER:iksi "rgb%":llä ja funktion määrittelyyn (sekä esittelyyn) "red AS INTEGER" jne.
Ihen kiva.
Tuosta saa muuten paria lukua muuttalla siistin AMIGA legenda efektin....
tämmöösen ku sais ugällälle(ugl)(sillä saa vaikka 32 tai 16 bittiset värit).
Edit: siinä on jo mukana
Aihe on jo aika vanha, joten et voi enää vastata siihen.