Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Tunneli palettianimaatiolla

Sivun loppuun

Eero Harmaala [16.07.2003 08:26:13]

#

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

odys [18.07.2003 01:00:22]

#

Ei toi mun mielestä niin paljoa tunnelille näyttänyt, mutta ihan kiva eli hyvä koodivinkki.

Oli siinä tunnelin näköä vähän.

kaviaari [18.07.2003 11:22:56]

#

Pienellä viiveellä tulee vasta mielikuva tunnelista...

Teme [18.07.2003 11:29:48]

#

Joo ihan nätti, valmis exe löytyy täältä: http://www.teemuikonen.net/op/tunneli.exe

T.M. [18.07.2003 23:29:28]

#

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 ;)

odys [19.07.2003 13:19:52]

#

Tulipahan mieleen, että piin arvon olisi voinut laittaa: PII = 4 * ATN(1)

tejeez [22.07.2003 18:38:27]

#

ööh? mikäs tää on?

odys [22.07.2003 23:16:44]

#

Testaa.

tejeez [23.07.2003 15:57:01]

#

Testasin, eikä tää tunnelilta näytä.

Vilikki [26.07.2003 17:48:25]

#

Ovelan näköinen.

viles [01.08.2003 00:46:36]

#

Hienoltahan toi näyttää

gamegalax.tk [25.11.2003 13:22:53]

#

Ei kovin hyvääh :(

hunajavohveli [03.01.2004 16:59:57]

#

Hieno :)
Oppii paletinkäyttöä ja trigonometrian sovellusta.


Sivun alkuun

Vastaus

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

Tietoa sivustosta