Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Paletin kierto (color cycling), pyörivä spiraali

Sivun loppuun

tn [15.01.2003 17:49:39]

#

Ohjelma näyttää värillisen spiraalin, jota pyöritetään paletti-animaatiolla.

Edit 2019 by mod: Vaihdettu hidastukseen TIMER. Koodi toimii FreeBASICilla asetuksella -lang qb.

SCREEN 13

'paletin värin vaihto
SUB AsetaVari(i%, r%, g%, b%)
  OUT 968, i%
  OUT 969, r%
  OUT 969, g%
  OUT 969, b%
END SUB

'spiraalin koko
kokox% = 320
kokoy% = 200

'vaihdetaan värit
FOR i% = 0 TO 63
  AsetaVari i%, i%, 0, 63 - i%
  AsetaVari i% + 64, 63 - i%, i%, 0
  AsetaVari i% + 128, 0, 63 - i%, i%
NEXT i%

'piirretään kuvio
FOR x% = 0 TO kokox% - 1
  FOR y% = 0 TO kokoy% - 1
    xx% = x% - kokox% / 2
    yy% = y% - kokoy% / 2
    IF xx% = 0 THEN
      IF yy% < 0 THEN kulma = 270 ELSE kulma = 90
    ELSE
      kulma = ATN(yy% / xx%) / (3.1415 / 180)
      IF xx% <= 0 THEN kulma = kulma + 180
      IF kulma < 0 THEN kulma = 360 + kulma
    END IF
    etaisyys% = SQR(xx% ^ 2 + yy% ^ 2)
    vari% = INT((kulma / 360 * 192 * 2 + etaisyys%) MOD 192)
    PSET (x%, y%), vari%
  NEXT y%
  IF INKEY$ = CHR$(27) THEN EXIT FOR
NEXT x%

'pyöritetään värejä
i% = 0
t# = TIMER
DO
  t# = t# + 0.02
  WHILE TIMER < t#: WAIT &h3da, &h8: WEND

  i% = (i% + 1) MOD 192
  FOR a% = 0 TO 63
    AsetaVari (a% + i%) MOD 192, a%, 0, 63 - a%
    AsetaVari (a% + 64 + i%) MOD 192, 63 - a%, a%, 0
    AsetaVari (a% + 128 + i%) MOD 192, 0, 63 - a%, a%
  NEXT a%
LOOP UNTIL INKEY$ = CHR$(27)

Antti Laaksonen [16.01.2003 19:35:21]

#

Hienohan tuo on. Paletin käyttömahdollisuudet ovat loputtomat.

snakari [16.01.2003 19:38:57]

#

tosi hieno!

KimmoKM [16.01.2003 21:02:40]

#

Upea!

Gwaur [17.01.2003 22:53:41]

#

Tosi hieno! Miten palettia muutellaan?

T.M. [18.01.2003 00:34:24]

#

siis aivan älyttömän makee!!!

tn [18.01.2003 11:39:06]

#

Palettiahan voi muunnella helposti PALETTE-käskyllä, mutta OUTilla se on paljon nopeampaa, vaikkakin vähän monimutkaisempaa.
Se toimii niin, että ensin laitetaan

OUT 968, i% ' jossa i% on väri, mitä muutetaan.

Sitten syötetään uuden värin RGB-arvo (red, green, blue) kolmella käskyllä:

OUT 969, r%
OUT 969, g%
OUT 969, b%

jossa kunkin osavärin kirkkaus ilmoitetaan arvolla väliltä 0-63.

Ajr [06.02.2003 08:50:29]

#

eiks pidä laitaa : ton
etaisyys% = SQR(xx% ^ 2 + yy% ^ 2)
jälkeen

Thief [26.02.2003 01:59:57]

#

Mahtavan näköinen.
Mutta eikös:
etaisyys% = SQR(xx% ^ 2 + yy% ^ 2) vari% = INT((kulma / 360 * 192 * 2 + etaisyys%) MOD 192)

rivin pitäisi olla:

etaisyys% = SQR(xx% ^ 2 + yy% ^ 2): vari% = INT((kulma / 360 * 192 * 2 + etaisyys%) MOD 192)

vai olenko väärässä?
muuten en ainakaan itse saanut tuota toimimaan..

tn [07.03.2003 17:50:38]

#

no nyt ne on takaisin eri riveillä

Jesoft [14.04.2003 16:12:12]

#

lainaus:

Mahtavan näköinen.
Mutta eikös:
etaisyys% = SQR(xx% ^ 2 + yy% ^ 2) vari% = INT((kulma / 360 * 192 * 2 + etaisyys%) MOD 192)

rivin pitäisi olla:

etaisyys% = SQR(xx% ^ 2 + yy% ^ 2): vari% = INT((kulma / 360 * 192 * 2 + etaisyys%) MOD 192)

vai olenko väärässä?
muuten en ainakaan itse saanut tuota toimimaan..

noi rivithän on samanlaisii vai eikö?

Sami [18.04.2003 12:20:33]

#

Ei ole samanlaisia, sillä siinä toisessa on kaksoispiste ennen vari%-sanaa.

Puhveli [09.07.2004 13:44:27]

#

siis uskomatonta! tota vois toljottaa tuntitolkulla, mutkun pää alkaa pikkuhiljaa kallistumaan :D

temu92 [22.03.2005 17:04:29]

#

Vähän Cool

moptim [25.08.2006 18:13:41]

#

ihan todella hieno!!!

Codeprofile [07.01.2007 14:37:24]

#

Ihan älyyyttömän siistiä!

Chaosworm [03.03.2007 10:46:01]

#

VAU! Tosi hieno juttu. En itse osaisi, mutta varmaankin johtuen siitä, että olen ennemmin opiskellut peleille tärkeitä asioita... Mutta joka tapauksessa todella hieno!

Dude [29.07.2007 16:09:34]

#

Tosi hieno.

New Samppi [05.01.2009 16:00:49]

#

HIENO


Sivun alkuun

Vastaus

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

Tietoa sivustosta