Tässä on tällainen ns."tunneli", josta tein mutkikkaan näköisen sinifunktion avulla. Tosin se on ihan pelkkä feikki, eikä erityisen hieno muutenkaan. Animaatio on tehty paletin pyörityksellä ja se on vähän turhan nopea, kun en jaksanut viivettä tehdä. Koodi on sotkuista, enkä ole pahemmin kommentoinutkaan sitä. Toivottavasti joku saa tästä irti edes jotain.
' eräänlainen "Tunneli" palettianimaatiolla ' ' - myönnän, koodi on hidasta ja sotkuista. En yleensä pahemmin ' kommentoikaan koodia, joten tarttee olla aika guru jos jotain ' aikoo saada selville ' SCREEN 13 CLS ' siniä ja kosinia: laitetaan lookup-taulukkoon, kun ollaan muunnettu ' tavallisiksi asteiksi (näin on vähän helpompaa ja nopeampaa) DIM sint(360) DIM cost(360) FOR a = 0 TO 360 sint(a) = SIN(a * 3.14 / 180) cost(a) = COS(a * 3.14 / 180) NEXT a ' Aluksi vähän demonstraatiota, jotta kaikki toivottavasti myös ' tajuaa mitä tässä haetaan. Sotkuista koodia. ' (Seuraavat n.20 riviä voi ihan surutta poistaa ***) oxpa = 0 olr = 0 FOR r = 0 TO 220 xposadd = INT(sint((r * 5) MOD 360) * (r / (3 + r / 22))) c = INT(10 * r / 220) + 21 IF r MOD 10 = 0 THEN CIRCLE (160 + xposadd, 100), r, c FOR u = 10 TO 350 STEP 20 LINE (160 + oxpa + olr * cost(u), 100 + olr * sint(u))-(160 + xposadd + r * cost(u), 100 + r * sint(u)), c NEXT u oxpa = xposadd olr = r NEXT r DO: LOOP WHILE INKEY$ = "" ' (*** Tähän saakka voi poistaa) ' Asetetaan paletti: FOR c = 0 TO 63 OUT &H3C8, c OUT &H3C9, c OUT &H3C9, c OUT &H3C9, c NEXT c FOR c = 64 TO 127 OUT &H3C8, c OUT &H3C9, 127 - c OUT &H3C9, 127 - c OUT &H3C9, 127 - c NEXT c FOR c = 128 TO 191 OUT &H3C8, c OUT &H3C9, c - 128 OUT &H3C9, c - 128 OUT &H3C9, c - 128 NEXT c FOR c = 192 TO 255 OUT &H3C8, c OUT &H3C9, 255 - c OUT &H3C9, 255 - c OUT &H3C9, 255 - c NEXT c 'piirretään koko sotku : FOR r = 0 TO 220 ' Poistamalla seuraavan rivin saa suoran tunnelin, mikä on ' aika harvinaisen ankea xposadd = INT(sint((r * 5) MOD 360) * (r / (3 + r / 22))) FOR f = 0 TO 6 CIRCLE (160 + xposadd + f - 3, 100), r, r NEXT f NEXT r 'Palettianimaatiota (kierretään palettia) DO OUT &H3C7, 255 tempr = INP(&H3C9) tempg = INP(&H3C9) tempb = INP(&H3C9) FOR c = 254 TO 0 STEP -1 OUT &H3C7, c r = INP(&H3C9) g = INP(&H3C9) b = INP(&H3C9) OUT &H3C8, c + 1 OUT &H3C9, r OUT &H3C9, g OUT &H3C9, b NEXT c OUT &H3C8, 0 OUT &H3C9, tempr OUT &H3C9, tempg OUT &H3C9, tempb 'Jos toimii liian nopeesti, niin tähän voi laittaa jonkun viiveen LOOP WHILE INKEY$ = "" END
Ei toi mun mielestä niin paljoa tunnelille näyttänyt, mutta ihan kiva eli hyvä koodivinkki.
Oli siinä tunnelin näköä vähän.
Pienellä viiveellä tulee vasta mielikuva tunnelista...
Joo ihan nätti, valmis exe löytyy täältä: http://www.teemuikonen.net/op/tunneli.exe
jooh, siisti on :)
jos vaa ite osais... qb:tä en jaksa opetella enää :D javalla olis varmaa kiva tehä ton tyylisii pikku juttui. jos jaksatte pastee jotai hyvii (suomalaisia) java-oppaita nii pastetkaa ;)
Tulipahan mieleen, että piin arvon olisi voinut laittaa: PII = 4 * ATN(1)
ööh? mikäs tää on?
Testaa.
Testasin, eikä tää tunnelilta näytä.
Ovelan näköinen.
Hienoltahan toi näyttää
Ei kovin hyvääh :(
Hieno :)
Oppii paletinkäyttöä ja trigonometrian sovellusta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.