Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: 3D-Palikat

Sivun loppuun

Jogge [29.09.2002 17:03:30]

#

Tein tämmösen yksinkertaisen 3D esimerkin (kun ei kertakaikkiaan ollut muutakaan tekemistä). Hommassa on pieni bugi, eli palikoista voi tulla vähän hassuja, kun viivat menevät ristiin. Jos joku tietää miten noihin palikoihin saisi tekstuurit seiniin ja muillekkin pinnoille, niin voisi kertoa. Noh ei sit muuta...

Edit: Sisennykset ja GOTO-luuppaus pois.

SCREEN 13
DIM zx1(1 TO 4)
DIM zy1(1 TO 4)
DIM zx2(1 TO 4)
DIM zy2(1 TO 4)
RANDOMIZE TIMER

DO
  'arvotaan palan kulmapisteet
  zx1(1) = INT(RND * 220) + 50
  zx1(2) = INT(RND * 220) + 50
  zx1(3) = INT(RND * 220) + 50
  zx1(4) = INT(RND * 220) + 50

  zy1(1) = INT(RND * 100) + 50
  zy1(2) = INT(RND * 100) + 50
  zy1(3) = INT(RND * 100) + 50
  zy1(4) = INT(RND * 100) + 50





  x1 = INT(RND * 220) + 50 'arvotaan pakopiste (tai mikä lie...)
  y1 = INT(RND * 100) + 50


  FOR c = 1 TO 4
    x = zx1(c) - x1
    y = zy1(c) - y1

    x = x * 1.2 'lasketaan uudelle pisteelle paikka
    y = y * 1.2 'toi 1.2 on sit palikoitten korkeus

    zx2(c) = x + x1
    zy2(c) = y + y1
  NEXT


  'tässä alkaa sitten piirtäminen
  FOR c = 1 TO 4
    LINE (zx1(c), zy1(c))-(zx2(c), zy2(c)), 7
  NEXT

  FOR c = 1 TO 3
    LINE (zx1(c), zy1(c))-(zx1(c + 1), zy1(c + 1)), 8
  NEXT
  LINE (zx1(4), zy1(4))-(zx1(1), zy1(1)), 8

  FOR c = 1 TO 3
    LINE (zx2(c), zy2(c))-(zx2(c + 1), zy2(c + 1)), 15
  NEXT
  LINE (zx2(4), zy2(4))-(zx2(1), zy2(1)), 15

  SLEEP
  a$ = INKEY$
  IF a$ = CHR$(27) THEN END 'ja sitten jos painaa essuu niin pääsee pis ohjelmasta
  CLS
LOOP

Jogge [30.09.2002 17:52:15]

#

kirjoitusvirheitä sitten saattoi jäädä... Mut antakaa kommenttia jos jaksatte.

Antti Laaksonen [30.09.2002 17:57:43]

#

Ihan tyylikkäitä kuvioita, 300. vinkki muuten.

Jogge [30.09.2002 18:04:38]

#

jee :)

tuobbi-89 [30.09.2002 18:11:52]

#

Jogge, olet tehnyt historiaa! :)
Ja onhan toi muutenkin ihan hieno!
Miks toi ei muuten oo sellasella sinisellä pohjalla, kun toihan on QBasic-koodia???

arcatan [30.09.2002 18:18:34]

#

ARVAUS: Luultavasti siksi, ettei sitä ole siirretty vielä QBasic-kohtaan, vaan se on Uusi juttu, joten siinä ei näy vielä sitä pohjaa. En tiedä, Antti Laaksonen tietänee :)

ruuvari [30.09.2002 19:13:59]

#

Muuten ihan kiva, mutta jogge voisi lopettaa tuon "1 goto 1" jutun käytön ;)

Jogge [30.09.2002 19:22:14]

#

niihän sen kyllä vois... on jotenkin jäänyt tavaksi vuosien varrelta...

(nimetön) [30.09.2002 20:36:08]

#

hienoo jälkee noin pienellä koodilla

tuobbi-89 [30.09.2002 21:03:51]

#

Pakko myöntää, että onhan tossa vähän tota koodia! Ihme kyllä, jopa ymmärrän sen sisällön, vaikken paljon grafiikan piirrosta tiedä... :)

Jogge [01.10.2002 15:09:20]

#

Suurin osa siinä onkin vain arvojen asettelua ja viivojen piirtoa... Tärkein osa siinä on vain kaksi riviä :)

Jogge [02.10.2002 19:32:46]

#

olen kehittelemässä nyt sitä tekstuurin laittamista pinnoille. Voin sitten pistää sen tänne kunhan saan sen valmiiksi...

thefox [02.10.2002 22:01:08]

#

Sisennyksiä jäin kaipaamaan.. jälleen kerran ;)
Ja GOTO 1:stä koita päästä eroon ;)

Jogge [03.10.2002 17:42:13]

#

mää oon laiska tekeen sisennyksii :P Voin joskus jaksaa tehdäkkin...

KimmoKM [04.10.2002 17:53:03]

#

QBssä taas minä en OSAA tehdä sisennyksiä

Gwaur [04.10.2002 22:43:47]

#

upee... :)

tejeez [31.08.2003 13:13:54]

#

et O S A A tehdä sisennyksiä? :PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDDD

Stume [15.01.2004 19:37:03]

#

et O S A A tehdä sisennyksiä? :PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDDD


Kommentti:

Lisko3 [22.06.2004 12:34:49]

#

LINE (zx2(c), zy2(c))-(zx2(c + 1), zy2(c + 1)), 15
pätkä ei mulla toimi ei millään

Dude [20.08.2007 17:15:57]

#

Ihan hieno. Mä kyllä tajuan koodin mutta en olis osannu teherä ku oon huono 3D jutuis.


Sivun alkuun

Vastaus

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

Tietoa sivustosta