IsometricText2 - Piirtää Tekstin 100% isometrisesti

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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ä. :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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.
Last edited by Koodiapina on Wed Jul 30, 2008 10:29 am, edited 1 time in total.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post by valscion »

No ainakin turhaan yrität poistaa DeleteImagella kuvat muistista return komennon jälkeen... ei niitä enää suoriteta.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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

Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post by Misthema »

Vielä kun koodaat tuohon varjostukset (siis kirjaimiin, ei "maahan"), niin voin olla kanssasi samaa mieltä isometrisyydestä. ;)
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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.

Last edited by MaGetzUb on Fri Aug 01, 2008 11:24 am, edited 1 time in total.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
cheeshelmet.jr
Member
Posts: 75
Joined: Tue Aug 28, 2007 6:59 am

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post by cheeshelmet.jr »

Eihän tuo ole 100% isometristä tekstiä....Hiano kuitenkin.
Tuolta kun luet ton niin selviää sinullekkin. ;)
MikkoK
Devoted Member
Posts: 813
Joined: Thu Jun 05, 2008 2:13 pm
Location: City 17

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post by MikkoK »

Tein avatarin tuolla. :D

Code: Select all

#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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..
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post by axu »

Hm? mielestäni tätä kutsutaan aksonometriseksi, muistelisin vain..
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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
atomimalli
Moderator
Moderator
Posts: 227
Joined: Wed Aug 29, 2007 3:55 pm

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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 

MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: IsometricText2 - Piirtää Tekstin 100% isometrisesti

Post 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
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Post Reply