No tuas äskeen kun kävin cbkk:ssa näin sielä sami345:en tekemän funktion. Noh päätinpä tehdä sitten oman...
Itse isometrinen teksti piirretään kuvaan, eli sitä ei voi muokata lennossa. Epäilen jos sellainen tuo olisi niin se voisi olla toodella hidas.
Tämä ei ole samanlainen kuin muut isometriset teksti funktiot. Koodi voi olla sekavaa, ja kommentteja on vähän, mutta sisennykset löytyy.
...Ja tässä on lopputulos:
Code: Select all
fontti = LoadFont("Arial",22,1) //Fontti joka ladataan...
SetFont fontti //Asetetaan fontti käyttö kuntoon.
Color 0,200,255 //Asettaa vaalean sinisen väriksi
isotext1 = ISOmetricText2("CoolBasic Rulez!",20) //Nyt käytetään alenpana luotua funkkaria.
Repeat
DrawImage isotext1,0,0 //Piirtää funktiolla luodun tekstin 0,0 koordinaatteihin
DrawScreen
Forever
//Luodaan funktio
Function ISOmetricText2(Txt$,W)
img = MakeImage(TextWidth(txt),TextHeight("|")) //Tehdään päällis kuva
img2 = MakeImage(TextWidth(txt),TextHeight("|")) // Tehdään Syvyys vaikutelma kuva
img3 = MakeImage(TextWidth(txt)+w,TextWidth(txt)/2+w) // Tehdään lopputuloskuva
DrawToImage img //Piirretään päällys tekstiin.
Text 0,0,txt$ //Piirretään teksti kuvaan.
DrawToImage img2 //Piirretään syvyys vaikutelma tekstiin
If getRGB(RED) > 80 Then R = getRGB(RED)-40 //Jos punaisen värin arvo on enenmän kuin 80 niin vähennetään arvosta 40 ja tehdään siitä oma muuttuja.
If getRGB(GREEN) > 80 Then G = getRGB(GREEN)-40//Sama vihreälle komponentille
If getRGB(BLUE) > 80 Then B = getRGB(BLUE)-40//Kuin siniselle.
Color R,G,B //Asettaa ns. luodut rgb komponentit väriksi
Text 0,0,txt$ //Piirtää tekstin kuvaan
DrawToImage img3 //Piirretään img3:een
For iw = 1 To w // ns. syvyydelle tarkoitettu muuttuja
For i = 1 To ImageWidth(img) //Mennään img pikselit läpitse, img2 ei tarvitse erikseen, koska ne on kummatkin sama kuva img3 vain vähän tummempi
DrawImageBox img2,i+iw,iw-w+ImageHeight(img3)-ImageHeight(img)-Sin(22.5)*i,i,0,1,ImageHeight(img) //Piirretään Ensinmäisenä 'syvyys'
DrawImageBox img,w+i,ImageHeight(img3)-ImageHeight(img)-Sin(22.5)*i,i,0,1,ImageHeight(img)//Sitten pääteksti
Next i
Next iw
DrawToScreen
Return img3 //Palauttaa lopputulos kuvan
DeleteImage img //Tuhoaa päällis kuvan muistista
DeleteImage img2 //Sama img2:elle
DeleteImage img3 //Se myös funnktiossa luodulle lopputulos kuvalle, tätäkään ei enää tarvita, kun se menee toiseen muuttujaan pää ohjelmassa.
EndFunction