Miten saan tekstin välkkymään?

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
mikkois
Newcomer
Posts: 43
Joined: Wed Sep 02, 2009 1:16 am
Location: Kokkola

Miten saan tekstin välkkymään?

Post by mikkois »

Olen vielä aikalailla pihalla coolbasicin käytöstä ja koodauksesta yleensäkin ja olisin erittäin kiitollinen jos voisitte neuvoa miten saan seuraavanlaisessa koodipätkässä olevan tekstin vilkkumaan, eli siis kirkastumaan ja himmenemään tiuhaan tahtiin, no tiedätte varmaan mitä ajan takaa :P

Eli tuo kohta jossa lukee "valitse vaihtoehto painamalla bla bla bla" pitäisi saada vilkkumaan.
Jos joku voisi tehdä koodiin tarvittavan muokkauksen että se rupeaisi toimimaan olisin erittäin
kiitollinen ja samalla oppisinkin jotain. Kiitos jo etukäteen.

Koodinpätkä olisi tämä:


Repeat
DrawImage karhunkuva,450,25
PlaySound karhu,50
CenterText 550,300,"Tekstiä"
CenterText 550,340,"Tekstiä"
CenterText 550,380,"Tekstiä"
Color cbred
CenterText 550,460,"Valitse vaihtoehto painamalla numeroa 1,2 tai 3"
Color cbwhite
Text 350,540,"1. Juokse karkuun itkien kuin pieni neiti"
Text 350,580,"2. Kaadu maahan ja makaa siinä hiljaa rukoillen"
Text 350,620,"3. Kiipeä puuhun ja huutele karhulle törkeyksiä sieltäkäsin"
DrawScreen
WaitKey
Until KeyDown(CbKey3) Or KeyDown(CbKey1) Or KeyDown(CbKey2)
If KeyDown(CbKey3) Then Goto puussa
If KeyDown(CbKey2) Then Goto maassa
If KeyDown(CbKey1) Then Goto juokse
11v
Member
Posts: 73
Joined: Wed Jun 10, 2009 10:13 pm

Re: Miten saan tekstin välkkymään?

Post by 11v »

Tässä olisi tälläinen mun tekemä shinetext functio.
Se ei ole varmaan mikään paras vaihtoehto, mutta toimiva.


Code: Select all

Global päällä
Global aika



Repeat 
'''       teksti,    x, y, aika, R1,G1, B1,R2,G2,B2
Shinetxt("Vilkkuu!!",10,10,1000,234,210,50,40,200,90)
'''  R1,G1,B1 = Väri, jos ei ole päällä.
'''  R2,G2,B2 = Väri, jos on päällä.
DrawScreen
Forever 





Function Shinetxt(Txt$, X, Y, kesto, R1, G1, B1, R2, G2, B2)
 
 If päällä = 1
   Color R2, G2, B2
   Text X, Y, Txt$
 ElseIf päällä = 0
   Color R1, G1, B1
   Text X, Y, Txt$
 EndIf 
 
 If Timer()> Aika + kesto Then
  If päällä = 0
    päällä = 1
  Else
    päällä = 0
  EndIf
    Aika = Timer()
 EndIf
 
 Return 0
EndFunction 
Black city peleistä parhain
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Miten saan tekstin välkkymään?

Post by Awaclus »

11v wrote:Tässä olisi tälläinen mun tekemä shinetext functio.
Se ei ole varmaan mikään paras vaihtoehto, mutta toimiva.
Ei tuossa mitään muuta vikaa näyttänyt olevan, paitsi nimi; itse olisin nimennyt funktion FlashTextiksi, koska sehän ei kiillä, vaan välkkyy.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Miten saan tekstin välkkymään?

Post by Jonez »

Tämä versio muuttaa väriä hiljalleen. Käytössä on kosini, koska se saa aina arvon väliltä -1 ja 1. Väri = 127.5 + 127.5x jossa x on arvo -1.0 - 1.0. Näin siis käydään läpi arvot 0 - 255.
Eri värisävyjä saadaksesi joudut muuttamaan koodia. Esim. punaisen värin saa näin: Color 127.5 + väri, 0, 0

Code: Select all

Const skaala = 127.5
Const nopeus = 3

Repeat

    i + nopeus
    väri# = Cos( i ) * skaala
    
    Color skaala + väri, skaala + väri, skaala + väri
    
    Text 20, 20, "Hello World"

    DrawScreen
Forever
Edit. ja miksi annoin esimerkin, enkä suoraa vastausta? Opit parhaiten koodaamaan tekemällä sen itse. Jos onnistut liittämään tämän koodin omaan koodiisi toimivasti, saatat ehkä oppiakin jotain prosessissa. En suosittele copy-pastea.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
11v
Member
Posts: 73
Joined: Wed Jun 10, 2009 10:13 pm

Re: Miten saan tekstin välkkymään?

Post by 11v »

Chaosworm wrote:
11v wrote:Tässä olisi tälläinen mun tekemä shinetext functio.
Se ei ole varmaan mikään paras vaihtoehto, mutta toimiva.
Ei tuossa mitään muuta vikaa näyttänyt olevan, paitsi nimi; itse olisin nimennyt funktion FlashTextiksi, koska sehän ei kiillä, vaan välkkyy.
Ai... Huono englanti, olen lukenut vasta 2 vuotta :D. Yleensä käännän tekstin googlen kääntö ohjelmalla.
Black city peleistä parhain
mikkois
Newcomer
Posts: 43
Joined: Wed Sep 02, 2009 1:16 am
Location: Kokkola

Re: Miten saan tekstin välkkymään?

Post by mikkois »

Kikkailin noiden koodien kanssa mutta en saa kokonaisuutta toimimaan. Olen vaan niin noob vielä tässä. :oops:
11v
Member
Posts: 73
Joined: Wed Jun 10, 2009 10:13 pm

Re: Miten saan tekstin välkkymään?

Post by 11v »

En tiedä toimiiko, en testannut.

Ohjelman alkuun

Code: Select all

Global päällä
Global aika
Se sun kohta, jossa sijaitsee nyt Flashtxt function komento.

Code: Select all

Repeat
DrawImage karhunkuva,450,25
PlaySound karhu,50
CenterText 550,300,"Tekstiä"
CenterText 550,340,"Tekstiä"
CenterText 550,380,"Tekstiä"
Color cbred
'''                            teksti,                                          x, y,  aika,  R1,  G1, B1, R2, G2,B2
Flashtxt("Valitse vaihtoehto painamalla numeroa 1,2 tai 3",550,460,1000,234,210,50,40,200,90)
'''  R1,G1,B1 = Väri, jos ei ole päällä.
'''  R2,G2,B2 = Väri, jos on päällä.
Color cbwhite
Text 350,540,"1. Juokse karkuun itkien kuin pieni neiti"
Text 350,580,"2. Kaadu maahan ja makaa siinä hiljaa rukoillen"
Text 350,620,"3. Kiipeä puuhun ja huutele karhulle törkeyksiä sieltäkäsin"
DrawScreen
Until KeyDown(CbKey3) Or KeyDown(CbKey1) Or KeyDown(CbKey2)
If KeyDown(CbKey3) Then Goto puussa 
If KeyDown(CbKey2) Then Goto maassa
If KeyDown(CbKey1) Then Goto juokse


Ohjelman loppuun

Code: Select all

Function Flashtxt(Txt$, X, Y, kesto, R1, G1, B1, R2, G2, B2)

If päällä = 1
   Color R2, G2, B2
   centerText X, Y, Txt$
ElseIf päällä = 0
   Color R1, G1, B1
   centerText X, Y, Txt$
EndIf 

If Timer()> Aika + kesto Then
  If päällä = 0
    päällä = 1
  Else
    päällä = 0
  EndIf
    Aika = Timer()
EndIf

Return 0
EndFunction


Black city peleistä parhain
mikkois
Newcomer
Posts: 43
Joined: Wed Sep 02, 2009 1:16 am
Location: Kokkola

Re: Miten saan tekstin välkkymään?

Post by mikkois »

Hyvin mielenkiintoista. Tuo toimii tuossa yhdessä kohdassa mutta jos koitan lisätä vilkkuvaa tekstiä muihin kohtiin ohjelmassa tuolla keskimmäisellä lisäämälläsi koodilla, värit lakkaa toimimasta ja musiikki sekoaa. :?:
11v
Member
Posts: 73
Joined: Wed Jun 10, 2009 10:13 pm

Re: Miten saan tekstin välkkymään?

Post by 11v »

Oho, niin muuten käykin :oops: En tiedä miksi. Hyvin jännää, erittäin jännää.
Black city peleistä parhain
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Miten saan tekstin välkkymään?

Post by Jonez »

Johtunee siitä, että funktiossa käytetään globaaleja muuttujia, jotka sekoittuvat kun funktiota käytetään useamman kerran samaan aikaan.

Tein itse oman välkkyfunktion. Tämä säätää vain itse piirtovärin, eli tekstin joudut kirjoittamaan erikseen. Globaaleita muuttujia ei ole; tarvittavat muuttujat syötetään parametreina.

Parametri _aväli kertoo vilkkumistiheyden: jos arvo on sama kuin fps, tiheys on kerran sekunnissa. Puolet fps:ästä on kaksi kertaa sekunnissa jne.

Code: Select all

Repeat
    aika = Blink( aika, 60, 255 )
    Text 20, 20, "Jee"
    
    aika2 = Blink( aika2, 30, 0, 255 )
    Text 20, 40, "Jotain muuta"

    aika3 = Blink( aika3, 30, 255, 0, 255, 0, 255, 255 )
    Text 20, 60, "lisää värejä! \o/"    
    
    DrawScreen
Forever

Function Blink( _aika, _aväli = 60, _r As Byte = 0, _g As Byte = 0, _b As Byte = 0, _r2 As Byte = 0, _g2 As Byte = 0, _b2 As Byte = 0 )
    _aika + 1
    If _aika Mod _aväli > _aväli / 2 Then
        Color _r, _g, _b
    Else
        Color _r2, _g2, _b2
    EndIf
    Return _aika
EndFunction
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
vieraileva tähti

Re: Miten saan tekstin välkkymään?

Post by vieraileva tähti »

Tässä pari viritystä

Code: Select all

Repeat
    Color 255, 255, 255
    If Timer() / 500 Mod 2 Then Text 10, 10, "Vilkkuu"
    
    c = Sin(Timer() / 2) * 127 + 127
    Color c, c, c
    Text 10, 50, "Himmenee ja kirkastuu"
    DrawScreen
Forever
Post Reply