Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Kirjainten järjestely -efekti

Antti Laaksonen [11.07.2002 15:21:45]

#

Tämä on QBasic-versio kauan sitten kirjoittamastani Kirjainten järjestely -efektistä VB:lle. Ohjelma siis tekee vaikkapa pelin alkuun sopivan efektin, jossa kirjaimet ensin sekoitetaan ympäri ruutua, ja sitten järjestetään oikeisiin paikkoihin animaation kera.

'muuttujatyyppi kirjaimille
TYPE tkirjain
  kirjain AS STRING * 1
  ax AS INTEGER
  ay AS INTEGER
  nx AS SINGLE
  ny AS SINGLE
  askelx AS SINGLE
  askely AS SINGLE
END TYPE

CLS

'tekstin asetukset
x% = 10
y% = 5
vari% = 9
teksti$ = "Ohjelmointiputka - QB, VB & PHP - www.ohjelmointiputka.net"
pykalat% = 15 'mitä suurempi, sen hitaampi animaatio

REDIM kirjain(LEN(teksti$)) AS tkirjain

'oikeat paikat (ax, ay), sekoitetut paikat (nx, ny) ja paikkojen
'välinen askel (askelx, askely)
COLOR vari%
RANDOMIZE TIMER
FOR i = 1 TO LEN(teksti$)
  kirjain(i).kirjain = MID$(teksti$, i, 1)
  kirjain(i).ax = x% + (i - 1)
  kirjain(i).ay = y%
  kirjain(i).nx = INT(RND * 80) + 1
  kirjain(i).ny = INT(RND * 23) + 1
  kirjain(i).askelx = (kirjain(i).nx - kirjain(i).ax) / pykalat%
  kirjain(i).askely = (kirjain(i).ny - kirjain(i).ay) / pykalat%
  LOCATE kirjain(i).ny, kirjain(i).nx: PRINT kirjain(i).kirjain
NEXT

'odotetaan näppäimenpainallusta
SLEEP

'[pykalat%] pykälän animaatio
FOR j = 1 TO pykalat%
  FOR i = 1 TO LEN(teksti$)
    'poistetaan vanha merkki
    LOCATE kirjain(i).ny, kirjain(i).nx: PRINT " "
    'uuden paikan laskeminen
    kirjain(i).nx = kirjain(i).nx - kirjain(i).askelx
    kirjain(i).ny = kirjain(i).ny - kirjain(i).askely
    'piirretään uusi merkki
    LOCATE kirjain(i).ny, kirjain(i).nx: PRINT kirjain(i).kirjain
  NEXT
  'hidaste
  WAIT &H3DA, 8
NEXT

'tulostetaan vielä koko teksti, jotta kaikki kirjaimet
'näkyvät varmasti
LOCATE y%, x%: PRINT teksti$

Tumpi [18.10.2002 15:34:02]

#

Kiva

The Ohjelmoija [21.06.2003 17:17:03]

#

Hieno. Hieman pätkii tossa järjestely vaiheessa.

Vastaus

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

Tietoa sivustosta