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
kirjoitusvirheitä sitten saattoi jäädä... Mut antakaa kommenttia jos jaksatte.
Ihan tyylikkäitä kuvioita, 300. vinkki muuten.
jee :)
Jogge, olet tehnyt historiaa! :)
Ja onhan toi muutenkin ihan hieno!
Miks toi ei muuten oo sellasella sinisellä pohjalla, kun toihan on QBasic-koodia???
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 :)
Muuten ihan kiva, mutta jogge voisi lopettaa tuon "1 goto 1" jutun käytön ;)
niihän sen kyllä vois... on jotenkin jäänyt tavaksi vuosien varrelta...
hienoo jälkee noin pienellä koodilla
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ä... :)
Suurin osa siinä onkin vain arvojen asettelua ja viivojen piirtoa... Tärkein osa siinä on vain kaksi riviä :)
olen kehittelemässä nyt sitä tekstuurin laittamista pinnoille. Voin sitten pistää sen tänne kunhan saan sen valmiiksi...
Sisennyksiä jäin kaipaamaan.. jälleen kerran ;)
Ja GOTO 1:stä koita päästä eroon ;)
mää oon laiska tekeen sisennyksii :P Voin joskus jaksaa tehdäkkin...
QBssä taas minä en OSAA tehdä sisennyksiä
upee... :)
et O S A A tehdä sisennyksiä? :PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDDD
et O S A A tehdä sisennyksiä? :PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDDD
Kommentti:
LINE (zx2(c), zy2(c))-(zx2(c + 1), zy2(c + 1)), 15
pätkä ei mulla toimi ei millään
Ihan hieno. Mä kyllä tajuan koodin mutta en olis osannu teherä ku oon huono 3D jutuis.
Aihe on jo aika vanha, joten et voi enää vastata siihen.