Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Aaltoilevat kirjaimet -efekti

Sivun loppuun

Antti Laaksonen [30.07.2002 15:52:59]

#

QBasic-efekti päivässä pitää mielen virkeänä...:) Tämä efekti näyttää halutun tekstipätkän niin, että kirjaimet kulkevat aaltoilleen oikealta vasemmalle näytön alaosassa. Taustan tulee olla musta, muuten tulee sotkua.

TYPE kirjain 'tyyppi piirrettäville kirjaimille
  merkki AS STRING * 1
  x AS SINGLE
  y AS SINGLE
  suunta AS SINGLE
END TYPE

DIM taulu(64) AS INTEGER 'käsiteltävän merkin kuvataulukko ja
DIM tyhja(64) AS INTEGER 'tyhjä taulukko vanhan merkin tyhjennykseen

DIM kirjaimet(200) AS kirjain 'taulukko kirjaimille, jos tekstiä on
                              'enemmän, nosta ylärajaa

pii = 4 * ATN(1)
osat = 4 'DATA-rivien määrä
vari = 9 'väri, jolla kirjaimet piirretään
snopeus = .08 'mitä suurempi, sen jyrkemmin kirjainten paikat muuttuvat

'luetaan kirjaimet taulukkoon DATAsta ja
'määritetään niille lähtöarvot
FOR i = 1 TO osat
  READ datat$
  FOR j = 1 TO LEN(datat$)
    kirjaini = kirjaini + 1
    kirjaimet(kirjaini).merkki = MID$(datat$, j, 1)
    kirjaimet(kirjaini).x = 304 + kirjaini * 8
    kirjaimet(kirjaini).y = 160
    kirjaimet(kirjaini).suunta = ABS(kirjaini MOD 2) * pii * 2
  NEXT
NEXT

'määritetään näyttötila ja kirjainten väri
SCREEN 13
COLOR vari

'otetaan tyhjää tyhja-taulukkoon
GET (0, 0)-STEP(8, 8), tyhja

'tulostetaan ensimmäinen merkki
LOCATE 21, 40: PRINT kirjaimet(1).merkki
DO
  FOR i = 1 TO kirjaini
    'jos kirjain on juuri tullut näytölle...
    IF kirjaimet(i).x = 312 THEN
      '...tulostetaan se
      LOCATE 21, 40: PRINT kirjaimet(i).merkki
    END IF

    'jos kirjain on näytön ulkopuolella...
    IF kirjaimet(i).x > 312 THEN
      '...siirretään sitä pikselin verran vasemmalle
      kirjaimet(i).x = kirjaimet(i).x - 1
    'jos kirjain on näytöllä...
    ELSEIF kirjaimet(i).x > 8 THEN
      '...otetaan se muistiin...
      GET (kirjaimet(i).x, kirjaimet(i).y)-STEP(8, 8), taulu
      '...tyhjennetään sen vanha paikka...
      PUT (kirjaimet(i).x - 1, kirjaimet(i).y - 1), tyhja, PSET
      '...lasketaan uusi x ja y...
      kirjaimet(i).x = kirjaimet(i).x - 1
      kirjaimet(i).suunta = kirjaimet(i).suunta + snopeus
      IF kirjaimet(i).suunta > 2 * pii THEN kirjaimet(i).suunta = 0
      kirjaimet(i).y = kirjaimet(i).y + COS(kirjaimet(i).suunta)
      '...ja piirretään kirjain uuteen paikkaansa
      PUT (kirjaimet(i).x, kirjaimet(i).y), taulu, PSET
    END IF
    'jos viimeinen kirjain on mennyt, poistutaan silmukasta
    IF kirjaimet(kirjaini).x = 8 THEN EXIT DO
  NEXT
  'pieni viive
  WAIT &H3DA, 8
LOOP WHILE INKEY$ <> CHR$(27)

'näytettävä teksti, DATA-rivien määrä on ilmoitettava muuttujassa 'osat'
DATA "Tämä efekti näyttää halutun tekstipätkän niin, että "
DATA "kirjaimet kulkevat aaltoillen oikealta vasemmalle "
DATA "näytön alaosassa *** (C) Antti Laaksonen 2002 *** "
DATA "www.ohjelmointiputka.net "
'                             ^viimeisen merkin tulee olla välilyönti

TH [01.08.2002 20:54:09]

#

En ymmärrä miten keksit aina vaan uusia efektejä! :) Tämä oli oikein hienoa työtä..

Antti Laaksonen [01.08.2002 22:52:16]

#

Jaa-a, jostain niitä vain mieleen tulee, ja hyvä niin, koska QBasic-efektien koodaus on hauskaa puuhaa..;)

Einstein [02.08.2002 01:44:46]

#

Lainattu eräästä tunnetusta pätkästä koodia...suomennettu ja hieman muuteltu...

HtH [02.08.2002 05:37:32]

#

Kyllä tuollainen aaltoileva teksti on nähty monessa introssa ja demossa, ei mitään uutta, mutta kiva efekti kuitenkin:)

Antti Laaksonen [02.08.2002 11:05:05]

#

Joo, tuttuhan tuo efektinä on, mutta 100% itse koodattu, kuten kaikki muut koodivinkkini, ellei toisin ole mainittu.

Einstein, annapa tuon tunnetun pätkän www-osoite, niin tarkistetaan...

Dj Wolf [03.08.2002 17:27:37]

#

Antti, ei millään pahalla mutta BootSector on tehnyt samanlaisen aikoja sitten... Mutta uskon silti sinua siinä että olet itse tuon koodannut :)

Gwaur [06.08.2002 22:18:22]

#

Hieno. Hassua kun katsoo oikein tarkkaan, voi nähdä tekstin menevän korkkiruuvimaisesti. Heh.

Yo-guy [13.08.2002 18:13:50]

#

Tosiaan ihme, Antti, että keksit näin paljon ohjelmia, tämäkin on loistava!

Ei sillä väliä jos sellainen on joskus ollut jossain, pääasia että sen on itse tehnyt!

gamehouse [12.06.2007 10:49:32]

#

Data- käsky nöt wörk


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta