3DText

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

3DText

Post by Sami345 »

Pelastin tämän esimerkkini vanhoilta foorumeilta. Tällä funktiolla voi tulostaa isometristä tekstiä.

Tässä funktio ja esimerkki:

Code: Select all

font = LoadFont("arial",80)
SetFont font
Color cbblue
Repeat
   Text3D(0,0,"Hei",10)
   DrawScreen
Forever

Function Text3D(x,y,teksti$,korkeus)
   r = getRGB(RED)
   g = getRGB(GREEN)
   b = getRGB(BLUE)
   For i = 1 To korkeus
       Color Max(r-i*5,0),Max(g-i*5,0),Max(b-i*5,0)
       Text x+i,y+i,teksti
       Text x+i+1,y+i,teksti
       Text x+i+2,y+i,teksti
   Next i
   Color r,g,b
EndFunction
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: 3DText

Post by Koodiapina »

Hieno efekti, joka antaa lisäpotkua otsikoihin.
Purple
Newcomer
Posts: 7
Joined: Thu Oct 25, 2007 1:01 pm
Location: Vaasa
Contact:

Re: 3DText

Post by Purple »

Hieno efekti, joka antaa lisäpotkua otsikoihin.
Oon samaa mieltä :D
Työn alla :
- Yewi » Rpg peli. Valmis 2% ( Tuleekohan koskaan valmiiksi? :/ )
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Purple
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: 3DText

Post by tuhoojabotti »

tässä mun aikaisemmin tekemä (r,g,b antaa oudon lisäyksen XD)

Code: Select all

SCREEN 900,225
ClsColor cbblack
font=LoadFont("arial",150)
Repeat
fadetext3D(10,10,"This is living!",10,20,30,font,0)
DrawScreen 
Forever 

Function fadetext3D(_x,_y,_txt$,_r,_g,_b,_fontname,reversion)
SetFont _fontname
If reversion=0 Then 
For z=255 To 0 Step -1
Color z+_r,z+_g,z+_b
Text _x+z/20,_y+z/20,_txt
Next z
Else 
For z=0 To 255 Step 1
Color z+_r,z+_g,z+_b
Text _x+z/20,_y+z/20,_txt
Next z
EndIf 
EndFunction 
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: 3DText

Post by Jani »

Tässä vielä vähän hienompi ja varmasti helpompi! (anteeksi nostosta)

Code: Select all

SCREEN 500,300

Repeat

    teksti$=Input("Teksti: ")
    DrawScreen
Until KeyHit(28)

CloseInput
ClearKeys

SCREEN 1200,400

l$=teksti$

x=50 : y=50

r=0
b=164
g=255

font=LoadFont("arial",50)
SetFont font

For i=1 To 20

    Color r,b,g
    Text x,y,""+l$
    Wait 50
    x+2 : y+2 //Teksti alaspäin + arvot ja ylös - arvot
    r-0 : b-5 : g-10
    DrawScreen OFF
Next i

DrawScreen OFF

WaitKey
EDIT: noh.. hienompi ja hienompi... riippuu mielipeteestä
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: 3DText

Post by Sami345 »

Jani wrote:Tässä vielä vähän hienompi ja varmasti helpompi! (anteeksi nostosta)

Code: Select all

koodii...
EDIT: noh.. hienompi ja hienompi... riippuu mielipeteestä
Tuo on hieman toimimaton. Laitoin aloitusväriksi punaisen ja lopusta tuli keltainen. Ja millä perusteella tuo olisi helpompi? On paljon helpompi kutsua funktiota, kuin alkaa laittaa koodin keskelle tuollaisia.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: 3DText

Post by Jani »

Sami345 wrote:
Jani wrote:Tässä vielä vähän hienompi ja varmasti helpompi! (anteeksi nostosta)

Code: Select all

koodii...
EDIT: noh.. hienompi ja hienompi... riippuu mielipeteestä
Tuo on hieman toimimaton. Laitoin aloitusväriksi punaisen ja lopusta tuli keltainen. Ja millä perusteella tuo olisi helpompi? On paljon helpompi kutsua funktiota, kuin alkaa laittaa koodin keskelle tuollaisia.
onhan se pelin keskellä helpompaa mutta ajattelin pikemminkin että ei ole muuta ;) eihän tuo ohjelmaan sovi :?
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
Ruuttu
Devoted Member
Posts: 688
Joined: Thu Aug 30, 2007 5:11 pm
Location: Finland, Sipoo

Re: 3DText

Post by Ruuttu »

Näistä 3D -efekteistä tulisi aina paljon hienompia, jos ihmiset hoksais laittaa päällimmäisen tekstikerroksen hieman vaaleammaksi kuin alemmat (tai toisinpäin, alemmat tummemmiksi). Silloin efekti on paljon selkeämpi ja myös hienompi, IMO.
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: 3DText

Post by Jani »

Ruuttu wrote:Näistä 3D -efekteistä tulisi aina paljon hienompia, jos ihmiset hoksais laittaa päällimmäisen tekstikerroksen hieman vaaleammaksi kuin alemmat (tai toisinpäin, alemmat tummemmiksi). Silloin efekti on paljon selkeämpi ja myös hienompi, IMO.
Noissahan on eri värit...
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
Ruuttu
Devoted Member
Posts: 688
Joined: Thu Aug 30, 2007 5:11 pm
Location: Finland, Sipoo

Re: 3DText

Post by Ruuttu »

Jani wrote:
Ruuttu wrote:3D -efekteissä päälimmäisen kerroksen pitäisi olla alempia huomattavasti kirkkaampi selkeyden vuoksi.
Noissahan on eri värit...
Oikeastaan tarkoitin tällaista:

Code: Select all

    font = LoadFont("arial",80)
    SetFont font
    Color cbblue
    Repeat
       Text3D(0,0,"Hei",10)
       DrawScreen
    Forever

    Function Text3D(x,y,teksti$,korkeus)
       r = getRGB(RED)
       g = getRGB(GREEN)
       b = getRGB(BLUE)
       For i = 1 To korkeus
           Color Max(r-i*5,0),Max(g-i*5,0),Max(b-i*5,0)
           If i = korkeus Then Color Max(r-i*3,0),Max(g-i*3,0),Max(b-i*3,0)
           Text x+i,y+i,teksti
           Text x+i+1,y+i,teksti
           Text x+i+2,y+i,teksti
       Next i
       Color r,g,b
    EndFunction
Kuten toivottavasti huomaat, tekstistä on huomattavasti helpompi saada selvää kuin alkuperäisessä esimerkissä. En siis tarkoittanut että kerrosten pitäisi olla erivärisiä, ("Noissahan on eri värit" - niin, tiedän) vaan että ylimmän kerroksen pitäisi olla ENEMMÄN erivärinen kuin alemmat kerrokset ovat.
Post Reply