Kirjoittaja: tArzAn
Kirjoitettu: 11.06.2002 – 27.11.2011
Tagit: grafiikka, demo, koodi näytille, vinkki
Ohessa "AWARE"-intron QB-lähdekoodi.
' ÜÛÜ Û Û ÜÛÜ ÛßÛÜÜ Ûßßßßßßß ' Û Û Û Û Û Û Û ßÛÜ Û ' ÜÛ ÛÜ Û Û ÜÛ ÛÜ Û ßÛ Û ' Û Û Û Û Û Û Û ÜÛß Û ' ÜÛ ÛÜ Û Û Û ÜÛ ÛÜ ÛÜÜÜÛß Ûßßßß ' Û Û Û ÛßÛ Û Û Û ÛÛÜ Û ' ÛßßßßßÛ Û Ûß ßÛ Û ÛßßßßßÛ Û ßÛÜ Û 'Ûß ßÛ ÛÛß ßÛÛ Ûß ßÛ Û ßÛÜ Û 'Û Û Û Û Û Û Û ßÛÜ ÛÜÜÜÜÜÜÜ ' 'Copyright (c) 1994 ' ' This source code is Greetware. If you learn ' something from here, you should greet ' in some of your products.. ' ..But I think that nobody will learn anything ' from this source code, unless what somebody ' SHOULD NOT do when coding something.. ' ' And as you probably have noticed, we didn't ' made this as a serious product, if we would ' then this would not be basic .. :) ' '------------------------------------------------- ' Hoo?! Who writed that crap?! ' ' 'METAMORPHER morfpoints = 62 DIM dx1(morfpoints) DIM dx2(morfpoints) DIM dtx(morfpoints) DIM dy1(morfpoints) DIM dy2(morfpoints) DIM dty(morfpoints) DIM dc(morfpoints) DATA" zbA "," yaMcB "," 9LYNd " : 'A DATA" x8X ZeC "," 7K Of "," w6V WgD " DATA" 5J Ph "," v4nopqrstiE "," 3I Qj " DATA"u2T UkF","1H Rl","0G Sm" DATA"0A Kc","1B Ld","2C Me" : 'W DATA"3D Nf","4E Og","5F y Ph" DATA"6G YwzxZ Qi","7H Vu vX Rj","8IUs tWSk" DATA"9Jp rTl","ao qm","b n" DATA" zbA "," yaMcB "," 9LYNd " : 'A DATA" x8X ZeC "," 7K Of "," w6V WgD " DATA" 5J Ph "," v4nopqrstiE "," 3I Qj " DATA"u2T UkF","1H Rl","0G Sm" DATA"bcdefghij ","aL Mk ","9K Nl " : 'R DATA"8J Vm ","7I Pn ","6H Oo " DATA"5wvutsrqp ","4G QB ","3FW RA " DATA"2EX Sz ","1DY Ty ","0CZ Ux" DATA"defghijklmnop","qUL ","rTK " : 'E DATA"sSJ ","tRI ","uABCDEFGH " DATA"vQZ ","wPY ","xOX " DATA"yNW ","zMV ","789abc0123456" ware$ = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" SCREEN 13 FOR a = 1 TO morfpoints dy2(a) = 100 dx2(a) = 160 NEXT a OUT &H3C8, 1 FOR a = 1 TO 31 OUT &H3C9, a * 2 OUT &H3C9, 15 OUT &H3C9, a NEXT FOR a = 31 TO 1 STEP -1 OUT &H3C9, a * 2 OUT &H3C9, 15 OUT &H3C9, a NEXT laskuri = 0 lups: laskuri = laskuri + 1 'x = INT(RND * 600) + 300 'y = INT(RND * 600) + 300 'z = INT(RND * 1000) IF laskuri = 1 THEN FOR a = 1 TO morfpoints x = 350: y = 350: z = 500 dx1(a) = dx2(a): dy1(a) = dy2(a) dx2(a) = (SIN((a + z) * x * .0001) * 150 + 160): dtx(a) = dx1(a) dy2(a) = (COS((a + z) * y * .0001) * 90 + 100): dty(a) = dy1(a) dc(a) = a: NEXT a END IF IF laskuri = 2 THEN FOR a = 1 TO morfpoints x = 300: y = 900: z = 800 dx1(a) = dx2(a): dy1(a) = dy2(a) dx2(a) = (SIN((a + z) * x * .0001) * 150 + 160): dtx(a) = dx1(a) dy2(a) = (COS((a + z) * y * .0001) * 90 + 100): dty(a) = dy1(a) dc(a) = a: NEXT a END IF IF laskuri = 3 THEN FOR a = 1 TO morfpoints x = 900: y = 400: z = 100 dx1(a) = dx2(a): dy1(a) = dy2(a) dx2(a) = (SIN((a + z) * x * .0001) * 75 + 160): dtx(a) = dx1(a) dy2(a) = (COS((a + z) * y * .0001) * 45 + 100): dty(a) = dy1(a) dc(a) = a: NEXT a END IF IF laskuri = 4 THEN REM .. SYMPTOM .. PRESENTS .. OUT &H3C8, 70: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 LOCATE 14, 20: COLOR 70: PRINT "SYMPTOM" FOR a = 0 TO 63: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a: OUT &H3C9, a DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT FOR a = 63 TO 0 STEP -1: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a: OUT &H3C9, a DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT LOCATE 14, 20: PRINT " presents" FOR a = 0 TO 63: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a / 2: OUT &H3C9, a DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT FOR a = 63 TO 0 STEP -1: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a / 2: OUT &H3C9, a DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT OUT &H3C8, 200: OUT &H3C9, 12: OUT &H3C9, 6: OUT &H3C9, 18 COLOR 200: LOCATE 24, 11: PRINT "A salute to B-WARE"; FOR b = 1 TO 12 READ a$: 'This routine grabs the first A FOR a = 1 TO LEN(a$) IF MID$(a$, a, 1) <> " " THEN FOR c = 1 TO LEN(ware$) IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c) dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25 END IF NEXT c END IF NEXT a NEXT b END IF IF laskuri = 5 THEN FOR b = 1 TO 12 READ a$ FOR a = 1 TO LEN(a$) IF MID$(a$, a, 1) <> " " THEN FOR c = 1 TO LEN(ware$) IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c) dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25 END IF NEXT c END IF NEXT a NEXT b END IF IF laskuri = 6 THEN FOR b = 1 TO 12 READ a$ FOR a = 1 TO LEN(a$) IF MID$(a$, a, 1) <> " " THEN FOR c = 1 TO LEN(ware$) IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c) dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25 END IF NEXT c END IF NEXT a NEXT b END IF IF laskuri = 7 THEN FOR b = 1 TO 12 READ a$ FOR a = 1 TO LEN(a$) IF MID$(a$, a, 1) <> " " THEN FOR c = 1 TO LEN(ware$) IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c) dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25 END IF NEXT c END IF NEXT a NEXT b END IF IF laskuri = 8 THEN FOR b = 1 TO 12 READ a$ FOR a = 1 TO LEN(a$) IF MID$(a$, a, 1) <> " " THEN FOR c = 1 TO LEN(ware$) IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c) dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25 END IF NEXT c END IF NEXT a NEXT b END IF IF laskuri = 9 THEN FOR a = 1 TO morfpoints x = 300: y = 300: z = 1 dx1(a) = dx2(a): dy1(a) = dy2(a) dx2(a) = (SIN((a + z) * x * .0001) * 15 + 160): dtx(a) = dx1(a) dy2(a) = (COS((a + z) * y * .0001) * 9 + 100): dty(a) = dy1(a) dc(a) = a: NEXT a FOR a = 1 TO 500: NEXT END IF '64 = number of frames FOR a = 1 TO 64 FOR b = 1 TO morfpoints PSET (dtx(b), dty(b)), 0 dtx(b) = dtx(b) + (dx2(b) - dx1(b)) / 64: 'Metamorphose itself dty(b) = dty(b) + (dy2(b) - dy1(b)) / 64: 'Quite simple, eh? PSET (dtx(b), dty(b)), dc(b) NEXT b ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0: ' vertical retrace DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30 IF INP(&H60) = 1 THEN GOTO lop NEXT a IF laskuri = 9 THEN GOTO lop GOTO lups lop: CLS OUT &H3C8, 0 FOR a = 1 TO 15: FOR b = 1 TO 3: OUT &H3C9, 0: NEXT: NEXT RESTORE FOR c = 0 TO 4 FOR b = 1 TO 12 READ a$ FOR a = 1 TO LEN(a$) IF MID$(a$, a, 1) <> " " THEN LINE (a * 3 + c * 70, b * 5)-(a * 3 + c * 70 + 2, b * 5 + 4), b, BF NEXT a NEXT b NEXT c FOR b = 12 TO 1 STEP -1 FOR a = 15 TO 0 STEP -1 OUT &H3C8, (15 - a) + b OUT &H3C9, a * 4 OUT &H3C9, a * 3 OUT &H3C9, a * 2 NEXT a DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT b FOR a = 1 TO 72 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a OUT &H3C8, 15: OUT &H3C9, 33: OUT &H3C9, 0: OUT &H3C9, 20 FOR a = 198 TO 0 STEP -1 LINE (0, a)-(319, a), 15 LINE (0, a + 1)-(319, a + 1), 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a CLS 'TRANSPARENT BARS DIM sint(360) DIM rr(200) DIM rg(200) DIM rb(200) pi = 3.141592653589793#: 'I remember 16 decimals but QB takes only 15.. SCREEN 13 OUT &H3C8, 0: FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a FOR a = 0 TO 360: sint(a) = SIN(a * pi / 180) * 70 + 100: NEXT a FOR a = 1 TO 200: rr(a) = 0: rg(a) = 0: rb(a) = 0: NEXT a OUT &H3C8, 219: OUT &H3C9, 23: OUT &H3C9, 13: OUT &H3C9, 5 OUT &H3C9, 63: OUT &H3C9, 63: OUT &H3C9, 63 LINE (0, 0)-(319, 199), 219, BF b = 0 FOR a = 0 TO 199 LINE (20, a + 1)-(300, a + 1), 220 LINE (21, a)-(299, a), a + 1 b = b + 1 IF b = 3 THEN DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: b = 0 END IF NEXT a br = 32: bg = 0: bb = 64 DEF SEG = &HA000 y = 0 DO IF y > 200 THEN LINE (y - 201, y - 201)-(320 - (y - 200), 200 - (y - 200)), 0, B y = y + 1 br = br + 2: IF br > 360 THEN br = 0 bg = bg + 2: IF bg > 360 THEN bg = 0 bb = bb + 2: IF bb > 360 THEN bb = 0 'FOR a = 1 TO 200: rr(a) = 0: rg(a) = 0: rb(a) = 0: NEXT a rr(sint(br)) = 63 rg(sint(bg)) = 63 rb(sint(bb)) = 63 FOR a = sint(br) - 1 TO sint(br) - 29 STEP -1: rr(a) = rr(a + 1) - 2: NEXT a FOR a = sint(bg) - 1 TO sint(bg) - 29 STEP -1: rg(a) = rg(a + 1) - 2: NEXT a FOR a = sint(bb) - 1 TO sint(bb) - 29 STEP -1: rb(a) = rb(a + 1) - 2: NEXT a FOR a = sint(br) + 1 TO sint(br) + 29: rr(a) = rr(a - 1) - 2: NEXT a FOR a = sint(bg) + 1 TO sint(bg) + 29: rg(a) = rg(a - 1) - 2: NEXT a FOR a = sint(bb) + 1 TO sint(bb) + 29: rb(a) = rb(a - 1) - 2: NEXT a ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30 OUT &H3C8, 10 FOR a = 10 TO 190 OUT &H3C9, rr(a) OUT &H3C9, rg(a) OUT &H3C9, rb(a) NEXT a LOOP UNTIL INP(&H60) = 1 OR y > 300 ' L™TKY DIM mx(200) DIM bx(200) SCREEN 13 CLS FOR l = 0 TO 199 FOR a = 0 TO 198: mx(a) = mx(a + 1): NEXT a FOR a = 199 TO 1 STEP -1: bx(a) = bx(a - 1): NEXT a mx(199) = SIN(l * .02) * 30 bx(0) = COS(l * .04) * 10 NEXT l OUT &H3C8, 15: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 FOR a = 0 TO 199 c = bx(a) + mx(a) + 160 LINE (0, a)-(c, a), 15 NEXT a DEF SEG = &HA000 DO l = l + 1 IF l < 264 THEN OUT &H3C8, 15: OUT &H3C9, l - 200: OUT &H3C9, l - 200: OUT &H3C9, l - 200 IF l > 400 THEN OUT &H3C8, 15 OUT &H3C9, 63 - (l - 400) OUT &H3C9, 63 - (l - 400) OUT &H3C9, 63 - (l - 400) END IF FOR a = 0 TO 198: mx(a) = mx(a + 1): NEXT a FOR a = 199 TO 1 STEP -1: bx(a) = bx(a - 1): NEXT a mx(199) = SIN(l * .02) * 30 bx(0) = COS(l * .04) * 10 b = 0 FOR a = 0 TO 199 c = bx(a) + mx(a) + 160 POKE b + c, 15 POKE b + c + 1, 15 POKE b + c + 2, 0 POKE b + c + 3, 0 b = b + 320 NEXT a ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30 LOOP UNTIL INP(&H60) = 1 OR l > 460 ' VECTORS points = 64 DIM orx(512): ' couple of stupid arrays.. DIM ory(512): ' This really don't need so DIM orz(512): ' many but I didn't have DIM nx(512): ' inspiration to change the DIM ny(512): ' code... DIM nz(512) DIM tx(512) DIM ty(512) DIM tz(512) DIM xp(512) DIM yp(512) DIM oxp(512) DIM oyp(512) d = 1 FOR c = 0 TO 7: FOR b = 0 TO 7: FOR a = 0 TO 7 orx(d) = (a - 2.9): ory(d) = (b - 2.9): orz(d) = (c - 2.9) nx(d) = 0: ny(d) = 0: nz(d) = 0: tx(d) = 0: ty(d) = 0: tz(d) = 0 xp(d) = 0: yp(d) = 0: oxp(d) = 0: oyp(d) = 0 d = d + 1 NEXT: NEXT: NEXT SCREEN 13 CLS zdis = 1 xrot = 0 yrot = 0 zrot = 0 sc = .05 OUT &H3C8, 0: FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a OUT &H3C8, 1 FOR a = 0 TO 63: OUT &H3C9, 63: OUT &H3C9, a: OUT &H3C9, a: NEXT a FOR a = 63 TO 0 STEP -1: OUT &H3C9, 63: OUT &H3C9, a: OUT &H3C9, a: NEXT a DEF SEG = &HA000 ' This stuff is so damn slow .. ;) ' Well, this piece of code is based ' on mine first attempt to make ' vectors.. DO xrot = xrot + .5 yrot = yrot + 1 zrot = zrot + 2 FOR a = 1 TO points nx(a) = orx(a) ny(a) = COS(xrot * sc) * ory(a) - SIN(xrot * sc) * orz(a) nz(a) = SIN(xrot * sc) * ory(a) - COS(xrot * sc) * orz(a) tx(a) = nx(a): ty(a) = ny(a): tz(a) = nz(a) nx(a) = COS(yrot * sc) * tx(a) + SIN(yrot * sc) * tz(a) ny(a) = ty(a) nz(a) = -SIN(yrot * sc) * tx(a) + COS(yrot * sc) * tz(a) tx(a) = nx(a): ty(a) = ny(a): tz(a) = nz(a) nx(a) = COS(zrot * sc) * tx(a) - SIN(zrot * sc) * ty(a) ny(a) = SIN(zrot * sc) * tx(a) + COS(zrot * sc) * ty(a) nz(a) = tz(a) / 128 + zdis / 10 IF nz(a) = 0 THEN nz(a) = 1 oxp(a) = xp(a): oyp(a) = yp(a) xp(a) = nx(a) / nz(a) + 160 yp(a) = ny(a) / nz(a) + 100 PSET (oxp(a), oyp(a)), 0 PSET (xp(a), yp(a)), xrot NEXT a ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 63 LOOP UNTIL INP(&H60) = 1 OR xrot > 128 'STARFIELD points = 60 DIM px(points) DIM py(points) DIM pz(points) DIM pxp(points) DIM pyp(points) speed = 5 SCREEN 13 CLS OUT &H3C8, 1 FOR a = 63 TO 1 STEP -1 OUT &H3C9, a OUT &H3C9, a OUT &H3C9, a NEXT a l = 0 FOR a = 1 TO points px(a) = 0: py(a) = 0 pz(a) = INT(RND * 100) + speed * 4 pxp(a) = 0: pyp(a) = 0 NEXT a laskuri = 0 'I don't know why this is so slow but I think 'that it could be much faster .. don't know 'how with BASIC.. lups2: laskuri = laskuri + 1 FOR a = 1 TO points IF (px(a) <> 0) AND (py(a) <> 0) THEN PSET (pxp(a), pyp(a)), 0 pz(a) = pz(a) - speed pxp(a) = px(a) / pz(a) + 159 pyp(a) = py(a) / pz(a) + 99 IF pz(a) < speed * 2 THEN l = l + 1 px(a) = INT(RND * 3000) - 1500 py(a) = INT(RND * 3000) - 1500 pz(a) = 120 + speed pxp(a) = px(a) / pz(a) + 159 pyp(a) = py(a) / pz(a) + 99 END IF IF px(a) <> 0 AND py(a) <> 0 THEN PSET (pxp(a), pyp(a)), pz(a) / 3 NEXT a ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0: 'vrc DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 ' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30 IF INP(&H60) <> 1 AND laskuri < 250 THEN GOTO lups2 'UNLIMITED BOBS SCREEN 7 b = 1: yi = 0: a = 100: fr = 1: xkr = 145: ykr = 85: ll = 1 OUT &H3C8, 1 OUT &H3C9, 15: OUT &H3C9, 10: OUT &H3C9, 31 OUT &H3C9, 24: OUT &H3C9, 19: OUT &H3C9, 48 OUT &H3C9, 31: OUT &H3C9, 26: OUT &H3C9, 63 OUT &H3C9, 24: OUT &H3C9, 19: OUT &H3C9, 48 OUT &H3C9, 15: OUT &H3C9, 10: OUT &H3C9, 31 coffee = 0 DO coffee = coffee + 1 PCOPY b, 0: 'Stupid way to change pages .. ' (I didn't have time to try some ' "inline assembly" stuff, since ' I'm not so familiar with QB's ' features).. 'I believe that PCOPY could be as slow as 'MOVE (mem[$a000:8000],mem[$a000:0],8000); a = a + 1 x = SIN(a * .03) * xkr + 150 y = COS(a * .046) * ykr + 90 x2 = SIN((a - 294) * .03) * xkr + 150 y2 = COS((a - 294) * .046) * ykr + 90 'PSET (x + t1, y + t2), 15 IF a < 470 THEN CIRCLE (x + 8, y + 8), 8, 1: 'Draw a circle CIRCLE (x + 8, y + 8), 7, 2 CIRCLE (x + 8, y + 8), 6, 3 CIRCLE (x + 8, y + 8), 5, 2 CIRCLE (x + 8, y + 8), 4, 1 END IF CIRCLE (x2 + 8, y2 + 8), 8, 0: 'Clear one circle CIRCLE (x2 + 8, y2 + 8), 7, 0 CIRCLE (x2 + 8, y2 + 8), 6, 0 CIRCLE (x2 + 8, y2 + 8), 5, 0 CIRCLE (x2 + 8, y2 + 8), 4, 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0: 'vrc DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 PCOPY 0, b b = b + 1 IF b = 8 THEN b = 1 LOOP UNTIL INP(&H60) = 1 OR coffee = 670 'SHADEBOBS SCREEN 13 CLS DIM riv(200) FOR a = 0 TO 199: riv(a) = a * 320: NEXT a OUT &H3C8, 0: FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a OUT &H3C8, 0 FOR a = 0 TO 15: OUT &H3C9, a * 2: OUT &H3C9, 0: OUT &H3C9, 0: NEXT a FOR a = 0 TO 15: OUT &H3C9, a * 2 + 32: OUT &H3C9, 0: OUT &H3C9, 0: NEXT a FOR a = 0 TO 31: OUT &H3C9, 63: OUT &H3C9, a * 2: OUT &H3C9, a * 2: NEXT a FOR a = 0 TO 31: OUT &H3C9, 63 - a: OUT &H3C9, 63: OUT &H3C9, 63 - a: NEXT a FOR a = 0 TO 31: OUT &H3C9, a + 32: OUT &H3C9, 63 - a * 2: OUT &H3C9, a + 32: NEXT a FOR a = 0 TO 31: OUT &H3C9, 63 - a: OUT &H3C9, 0: OUT &H3C9, 63: NEXT a FOR a = 0 TO 31: OUT &H3C9, a + 32: OUT &H3C9, a: OUT &H3C9, 63 - a * 2: NEXT a FOR a = 0 TO 31: OUT &H3C9, 63: OUT &H3C9, a + 32: OUT &H3C9, 0: NEXT a FOR a = 0 TO 31: OUT &H3C9, 63 - a * 2: OUT &H3C9, 63 - a * 2: OUT &H3C9, 0: NEXT a tea = 1 DEF SEG = &HA000 DO tea = tea + 1 x = SIN(tea * .032) * 20 + SIN(tea * .1) * 30 + 160 y = COS(tea * .02) * 10 + COS(tea * .1) * 30 + 100 FOR b = y - 16 TO y + 16: FOR a = x - 16 TO x + 16 POKE riv(b) + a, PEEK(riv(b) + a) + 2 'Arf, that's SLOW.. NEXT a: NEXT b 'OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0 'DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 'DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 'OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30 LOOP UNTIL (INP(&H60) = 1) OR tea > 700 DIM tx1(5) AS STRING DIM tx2(5) AS STRING tx1(1) = "³ THIS IS THE LAST PART OF THIS INTRO. ³" tx1(2) = "³ ³" tx1(3) = "³ Why all effects in this ³" tx1(4) = "³ intro were so slow ?! ³" tx1(5) = "³ because...³" tx2(1) = "³...THIS IS PURE QUICKBASIC 4.0 !! ³" tx2(2) = "³ so greetings go ONLY to B-WARE.. ³" tx2(3) = "³ ³" tx2(4) = "³ Credits: removed from this version ³" tx2(5) = "³ - no music in this version - ³" SCREEN 13 CLS OUT &H3C8, 0 FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a FOR b = 0 TO 4: FOR a = 1 TO 40 LOCATE 10 + b, a COLOR b * 40 + a PRINT MID$(tx1(b + 1), a, 1) NEXT a: NEXT b FOR a = 1 TO 200 FOR b = 31 TO 0 STEP -1 OUT &H3C8, a + (31 - b) OUT &H3C9, b * 2 OUT &H3C9, b * 1.5 OUT &H3C9, b NEXT b DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a FOR a = 1 TO 72 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a FOR a = 63 TO 0 STEP -1 OUT &H3C8, 1 FOR b = 1 TO 200 OUT &H3C9, a: OUT &H3C9, a * .75: OUT &H3C9, a * .5 NEXT b DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a OUT &H3C8, 0 FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a FOR b = 0 TO 4: FOR a = 1 TO 40 LOCATE 10 + b, a COLOR b * 40 + a PRINT MID$(tx2(b + 1), a, 1) NEXT a: NEXT b 'very simple "writer" FOR a = 1 TO 200 FOR b = 31 TO 0 STEP -1 OUT &H3C8, a + (31 - b) OUT &H3C9, b OUT &H3C9, b * 1.5 OUT &H3C9, b * 2 NEXT b DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a FOR a = 1 TO 146 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a FOR a = 63 TO 0 STEP -1 OUT &H3C8, 1 FOR b = 1 TO 200 OUT &H3C9, a * .5: OUT &H3C9, a * .75: OUT &H3C9, a NEXT b DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0 DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8 NEXT a SCREEN 0 WIDTH 80 COLOR 9: PRINT "Pure "; : COLOR 6: PRINT "SYMPTOM"; COLOR 9: PRINT " production of year "; : COLOR 2: PRINT "1994"; COLOR 9: PRINT "." ' ' ' ' That's it! And I want to quote our famous poem Gimle : ' "Hope you didn't puke too much!" ' ' '
Onko tuossa nyt oma käyttöjärjestelmä (tai mahdollisesti GUI) mukana kun se on noin pitkä
Käyttis noin lyhyellä rivimäärällä? LOL!!!
Ei tuo ole käyttistä nähnytkään. Mutta hauska ja hieno QBasic-demo silti.
No entäs sitten se GUI
Wow, aikamoinen demo! :)
Kui vaatii useita kymmeniä tuhansia rivejä koodia
siis gui
Vähän oli hieno!
Huh huh...tossa oli sitä jotain
Hieno! Tuosta voi jopa olla hyötyä jollekin =]
Vau... Onnetteluni sille, joka kykeni tuon luomaan...
-Grey-
Siisti! En vaan mä osaisi!
Siisti ja upee samalla kertaa.
*****
Viisi tähteä multa. Enpä olisi uskonut, että QB:llä sais tuommoista vielä aikaan. Varsinkin sen rinkulamadon jälkeen tuleva juttu on tosi hieno.
miten noita voi kopioida qb:iin
Kivan näköinen, mutta ei varmaan tule käytettyä missään omissa jutuissa (lähinnä koon takia)
Ihan hieno. Oon ladannu tän kerran muualtakin kun kaveri kehu että on hieno. Se sano etten varmasti pystyis tekemään mitään niistä efekteistä. Ne, jotka on nähny mun koodivinkkejä, saavat esittää asiasta omat arvionsa.
Löysin tän saman jostain... Ei ny vaa tuu mieleen mistä.
Vieläkin oon ihan...ei uskois. Kuka ton o JAKSANU vääntää varmaa monen viikon ellei kuukauden homma---
lainaus:
Vieläkin oon ihan...ei uskois. Kuka ton o JAKSANU vääntää varmaa monen viikon ellei kuukauden homma---
No arvaa, ajattelenko minä samaa?
Mä oon ihanku haulikolla päähän lyöty... eiku...
lainaus:
Vieläkin oon ihan...ei uskois. Kuka ton o JAKSANU vääntää varmaa monen viikon ellei kuukauden homma---
Pojat tekee ihan harrastukseks näytä, kilpaileevat grouppien kesken kellä on vuoden parhaat demot/introt. :)
Perfect'o!
kuka tuommoosen osaa qbeellä teherä.