Page 1 of 1

IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Tue Jul 29, 2008 1:15 am
by MaGetzUb
Tässä on oma elvistelyn aiheeni. :D
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. :D
...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 



Kommentoikaa ihmeessä, haluan tietää mitä olette mieltä. :)

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Tue Jul 29, 2008 9:59 am
by Koodiapina
Eikös isometrisessä mennä kaksi vaakasuunnassa ja yksi pystysuunnassa? Itse efekti on kuitenkin ihan OK, vaikka samanlainen on tehty aikaisemminkin nimellä 3DText (Joka ei tosin ollut 3D:tä).

EDIT: Uuden servun takia linkki ei toimi.

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Tue Jul 29, 2008 11:57 pm
by valscion
No ainakin turhaan yrität poistaa DeleteImagella kuvat muistista return komennon jälkeen... ei niitä enää suoriteta.

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Wed Jul 30, 2008 11:05 am
by MaGetzUb
AI? Minä luulin että funkitot suoritetaan loppuun asti. No pitääpä tuokin epäselvyys korjata... :o :? :) :D
EDIT:

Ja kyllä Grandi, tämä on isometristä...
http://www.isopics.com/images/isopics_text.gif < Tossa on googlettamani isometrisen tekstin kuvahaku ja siinä vielä tarkennettuna kuva.. :D


Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Fri Aug 01, 2008 2:17 am
by Misthema
Vielä kun koodaat tuohon varjostukset (siis kirjaimiin, ei "maahan"), niin voin olla kanssasi samaa mieltä isometrisyydestä. ;)

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Fri Aug 01, 2008 10:16 am
by Koodiapina
Tuossa linkittämässäsi kuvassa menee kaksi vaakasuunnassa ja yksi pystysuunnassa, ja omassa versiossasi menee yksi vaakasuunnassa ja yksi pystysuunnassa. Ei ole minun mielestäni täysin 100%.
Image

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Fri Aug 01, 2008 11:04 am
by MaGetzUb
Ai grandi, tarkoitat siis että se kulma on liian tylppä, no korjaa se itsellesi sopivaksi koodissa...
Ja misthema, se varjostus on vielä pikkuisen hankala asia.. :D
EDIT:

Riippuu vähän isometrisestä pelistä, miten se isometrinen laatikko piirretään.


Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Fri Aug 01, 2008 11:10 am
by cheeshelmet.jr
Eihän tuo ole 100% isometristä tekstiä....Hiano kuitenkin.
Tuolta kun luet ton niin selviää sinullekkin. ;)

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Fri Aug 01, 2008 4:57 pm
by MikkoK
Tein avatarin tuolla. :D

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Fri Aug 01, 2008 8:44 pm
by MaGetzUb
Offtopicckina vaa:
MikkoK141 wrote:Tein avatarin tuolla. :D
Katsoinkin sitä pikkuisen.. :D
Mutta minun mielestäni tämä on isometristä, laittakaa vaikka isometrinen ns. <> <- laatikko sinne alle tuohon tyyliin..

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Sat Aug 02, 2008 6:48 pm
by koodaaja
Kun se ei ole mielipidekysymys, ei sitten ollenkaan. Isometrisessä piirroksessa viivat kulkevat 0, 30, 45, 60, 90 ja niin edelleen asteen kulmissa, tietysti pyöreitä muotoja lukuun ottamatta. Tosin tietokonegrafiikassa hyväksytään 29,x (vai oliko 28,x) koska se näyttää niin paljon paremmalta. Tuo ei siis ole edes lähellä isometristä, joten otsikko hämää aika pahasti.

Muuten hiano funkkari.

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Wed Sep 03, 2008 4:10 pm
by axu
Hm? mielestäni tätä kutsutaan aksonometriseksi, muistelisin vain..

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Wed Sep 03, 2008 4:27 pm
by Koodiapina
Kehtaisin väittää että olet oikeassa, vaikka tukenani on vain pikainen Googletus. Tai no ei sillä nimityksellä ole mitään väliä, kunhan kaikki ovat yhteisymmärryksessä, että se ei ole ainakaan isometristä :D

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Wed Sep 03, 2008 5:35 pm
by atomimalli
Tuon tekstin etuosa ilman pidennytä kyllä menee isometrisesti mutta jatko-osa menee joko sääntöjen vastaisesti tai sitten sen on tarkoitus olla ilmassa sen toisen pään. Mikäli sen ei ole tarkoitus nousta ilmaan niin tässä on oikea koodi:

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/2-w/2+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 


Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Posted: Wed Sep 03, 2008 8:48 pm
by MaGetzUb
Juuri tuollaisen sain itsekkin joskus tässä viikko pari sitten tehtyä, mutta enpä lähettäny sitä tänne foorumille. :) Mutta tällainen on justiin eikä melkeen isometristä. :) :D