Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Ilotulitusta QB:llä

Sivun loppuun

Jogge [31.12.2002 17:24:05]

#

Tein pienen ilotulitusohjelman uudeksi vuodeksi, jos haluaa viellä raketteja katsella. Koodi voi olla vähän epäselkeää, mutta ainakin minulla toimii ihan hyvin.

SCREEN 7, , 0, 1 'saadaan doublebufferointi tässä näyttötiassa

pixmax = 128 'montako kivaa pikseliä enintään räjähdyksessä
a = 2 'painovoimakiihtyvyys
pixkest = 10 'kuinka kauan pikselit näkyvät
rakpit = 8 'raketin pituus
rksp = 10 'raketin kipinäsuihkun pituus


DIM kx(pixmax)
DIM ky(pixmax)
DIM k(rksp)
DIM col(rksp)

'kipinäsuihkun värit
FOR k = 0 TO rksp
  col(k) = 4
  IF k < rksp / 1.2 THEN col(k) = 6
  IF k < rksp / 1.8 THEN col(k) = 14
NEXT

DO

  rakv = CINT(RND * 14) + 1 'raketin väri
  x = INT(RND * 300) + 10 'raketin räjähdyspaikka
  y = INT(RND * 100) + 10
  rakx = INT(RND * 50) + x - 25

  xm = (x - rakx) / (200 - y)

  FOR m = 0 TO rksp
    kx(m) = rakx
    ky(m) = 200
  NEXT


  FOR raky = 200 TO y STEP -2
    rakx = rakx + xm

    LINE (rakx, raky)-(rakx + xm * rakpit, raky - rakpit), rakv 'piirretään raketti

    IF r > rksp THEN r = 0

    kx(r) = rakx
    ky(r) = raky

    k(r) = 0

    FOR m = 0 TO rksp 'piirretään kipinäsuihku
      PSET (kx(m), ky(m)), col(k(m))
      kx(m) = kx(m) + CINT(RND * 2) - 1
      ky(m) = ky(m) + CINT(RND * 2) - 1
      k(m) = k(m) + 1
    NEXT
    r = r + 1

    PCOPY 0, 1 'flipataan sörsseli näytölle
    CLS
    IF INKEY$ = CHR$(27) THEN END
  NEXT


  'laskeskellaan räjähdysjuttuja
  pix = CINT(RND * pixmax - 2) + 2
  poksx = CINT(RND * 40) + 10
  poksy = CINT(RND * 40) + 10

  FOR m = 0 TO pix
    kx(m) = CINT(RND * poksx) - poksx / 2
    ky(m) = CINT(RND * poksy) - poksy / 1.5
  NEXT

  FOR t = 0 TO pixkest STEP .1
    FOR m = 0 TO pix
      IF kx(m) <> 0 AND ky(m) <> 0 THEN
        px = t * kx(m) 'lasketaan lentorataa
        py = ky(m) * t + .5 * a * t ^ 2 'lasketaan lentorataa
        PSET (px + x, py + y), CINT(RND * 15) 'piirretään piste
        IF INT(RND * 40) = 1 THEN kx(m) = 0: ky(m) = 0
      END IF
    NEXT
    PCOPY 0, 1 'flipataan sörsseli näytölle
    CLS
    IF INKEY$ = CHR$(27) THEN END
  NEXT

LOOP

Antti Laaksonen [01.01.2003 00:51:48]

#

Hyvä ja ajankohtainen ohjelma. Raketteja voisi tosin räjähdellä enempikin yhtä aikaa.

snakari [01.01.2003 01:54:23]

#

hieno.
tosiaan niitä raketteja voisi tulla enemmän, mutta hieno

progo [01.01.2003 02:10:28]

#

Tyylikäs..

T.M. [01.01.2003 05:34:43]

#

perkeleen hieno!

LL [01.01.2003 12:06:14]

#

Hieno. Pitäisi vielä olla niitä entisajan thunder kingejä :)

Tumpi [01.01.2003 15:17:00]

#

Hieno, mutta raketin jättämä suihku katoaa samalla kun raketti pamahtaa :(

KimmoKM [02.01.2003 20:12:15]

#

Hyvä

Gwaur [04.01.2003 23:58:14]

#

Tosi upee, vielä ku aina räjähtäessä tausta välähtäis kanssa silleen hienosti. Joo tosiaankin se suohku saisi jäädä näkyviin räjähdyksen aikana niin olis hieno. Mä kun etin ja väänsin ja selasin ja käänsin, niin ei silti mistään löytyny sitä että se poistettais näkyvistä. Missä kohtaa koodia se katoaa sitten? voisko joku mulle kertoa?

Jogge [26.03.2003 21:28:27]

#

Neljänneksi viimeisellä rivillä CLS kohdassa.

Meitsi [31.08.2003 18:37:52]

#

tyylikäs!!

New Samppi [05.01.2009 14:24:57]

#

Tosi hieno!!!


Sivun alkuun

Vastaus

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

Tietoa sivustosta