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öntiEn ymmärrä miten keksit aina vaan uusia efektejä! :) Tämä oli oikein hienoa työtä..
Jaa-a, jostain niitä vain mieleen tulee, ja hyvä niin, koska QBasic-efektien koodaus on hauskaa puuhaa..;)
Lainattu eräästä tunnetusta pätkästä koodia...suomennettu ja hieman muuteltu...
Kyllä tuollainen aaltoileva teksti on nähty monessa introssa ja demossa, ei mitään uutta, mutta kiva efekti kuitenkin:)
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...
Antti, ei millään pahalla mutta BootSector on tehnyt samanlaisen aikoja sitten... Mutta uskon silti sinua siinä että olet itse tuon koodannut :)
Hieno. Hassua kun katsoo oikein tarkkaan, voi nähdä tekstin menevän korkkiruuvimaisesti. Heh.
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!
Data- käsky nöt wörk
Aihe on jo aika vanha, joten et voi enää vastata siihen.