From: Svjatoslav Agejenko Date: Mon, 16 Sep 2024 20:30:33 +0000 (+0300) Subject: Remove duplicates and broken demos. X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=commitdiff_plain;h=0410d3a19ad6ab935e6601f262ec4cd6276a372c;p=qbasicapps.git Remove duplicates and broken demos. --- diff --git a/Graphics/Presentations/KHK Intellektika 2004 demo/RAY.BAS b/Graphics/Presentations/KHK Intellektika 2004 demo/RAY.BAS deleted file mode 100755 index a790285..0000000 --- a/Graphics/Presentations/KHK Intellektika 2004 demo/RAY.BAS +++ /dev/null @@ -1,310 +0,0 @@ -DECLARE SUB dispimg () -DECLARE SUB updateland () -DECLARE SUB makeland () -DECLARE FUNCTION getcol! (r!, g!, b!) -DEFINT A-Y -DECLARE SUB traceline (x%, y%, xl) -DECLARE SUB dispframe () -DECLARE SUB tower (x%, y%) -DECLARE SUB square (x1%, y1%, x2%, y2%, c%, h%) -DECLARE SUB displand () -DECLARE SUB start () -DECLARE SUB setupal () - -DIM SHARED landh(0 TO 180, 0 TO 180) -DIM SHARED landc(0 TO 180, 0 TO 180) - -DIM SHARED zmyx, zmyy, zmyz -DIM SHARED myx, myy, myz -DIM SHARED zmyan, myan2 -DIM SHARED ste, stem, dist -DIM SHARED tim$, frm, frmrate -DIM SHARED pi -DIM SHARED white - -sky = getcol(100, 100, 255) -pi = 3.141592 - -frmrate = 10 ' Desired framerate. - ' Lower framerate, better quality - -start -makeland - -'displand -'a$ = INPUT$(1) -myan2 = 2 -OPEN "cat.i01" FOR INPUT AS #1 -INPUT #1, pictxw -INPUT #1, pictyw -INPUT #1, pictx -INPUT #1, picty - -1 -x1 = RND * 160 -y1 = RND * 160 -x2 = x1 + RND * 10 + 1 -y2 = y1 + RND * 10 + 1 - -IF (frm > 50) AND (frm < 150) THEN square x1, y1, x2, y2, RND * 200, RND * 10 -IF (frm > 150) AND (picty < 177) THEN - - FOR ff = 1 TO 180 * 2 - INPUT #1, c - landc(pictx, picty) = c - landh(pictx, picty) = 0 - pictx = pictx + 1 - IF pictx >= pictxw THEN pictx = 0: picty = picty + 1 - IF picty >= pictyw THEN picty = 0 - NEXT ff -END IF - -IF frm = 430 THEN dispimg -LOCATE 1, 30 -'PRINT frm - -updateland -dispframe -GOTO 1 -CLOSE #1 - -SUB dispframe - -l = 0 -zst = -.0031 * ste -FOR z = .5 TO -.5 STEP zst - traceline SIN(zmyan + z) * dist + myx, COS(zmyan + z) * dist + myy, l - l = l + ste -NEXT z - -END SUB - -SUB dispimg - -CLOSE #1 - -OPEN "cat.i01" FOR INPUT AS #1 -INPUT #1, pictxw -INPUT #1, pictyw - -FOR y = 0 TO pictyw - 1 - FOR x = 0 TO pictxw - 1 - INPUT #1, c - PSET (x + 50, 150 - y), c - NEXT x -NEXT y - -CLOSE #1 - -FOR a = 1 TO 50 - SOUND 0, 1 -NEXT a -CHAIN "KHKDEMO2.BAS" - -END SUB - -SUB displand - -FOR z = 0 TO 180 - zs = 1 - IF z > 120 THEN zs = .7 - IF z > 160 THEN zs = .6 - FOR zx = 0 TO 180 STEP zs - y1 = landh(zx, z) - 80 - zx1 = zx - 90 - z1 = 300 - z - zx2 = zx1 / z1 * 190 - zy2 = y1 / z1 * 190 - - LINE (zx2 + 160, 40 - zy2)-(zx2 + 160, 200), landc(zx, z) - NEXT zx -NEXT z - -LOCATE 1, 1 -PRINT "Press any key to continue..." - -END SUB - -DEFSNG A-Y -FUNCTION getcol (r, g, b) -IF r < 0 THEN r = 0 -IF g < 0 THEN g = 0 -IF b < 0 THEN b = 0 -IF r > 255 THEN r = 255 -IF g > 255 THEN g = 255 -IF b > 255 THEN b = 255 -getcol = INT(r / 43) * 36 + INT(g / 43) * 6 + INT(b / 43) -END FUNCTION - -DEFINT A-Y -SUB makeland - -square 0, 0, 180, 180, 15, 0 - -FOR y = 0 TO 180 - FOR x = 0 TO 180 - x1 = (x \ 10) MOD 2 - y1 = (y \ 10) MOD 2 - c = (x1 + y1) MOD 2 - IF c = 0 THEN - landc(x, y) = getcol(250, 250, 250) - ELSE - landc(x, y) = getcol(250, 50, 50) - END IF - NEXT x -NEXT y - -FOR y = 10 TO 90 - FOR x = 90 TO 170 - v = SQR((ABS(50 - y)) ^ 2 + (ABS(130 - x)) ^ 2) - h = SQR((60 - v) * (60 + v)) - 35 - IF h > 0 THEN landh(x, y) = h - NEXT x -NEXT y - -tower 20, 20 -tower 60, 20 -tower 40, 150 - -FOR za = 0 TO 20 STEP .1 - x = SIN(za) * (1 + (za * 2)) + 100 - y = COS(za) * (1 + (za * 2)) + 100 - landc(x, y) = getcol(20, RND * 200, 20) - landc(x + 1, y) = getcol(20, RND * 200, 20) - landc(x, y + 1) = getcol(20, RND * 200, 20) - landc(x + 1, y + 1) = getcol(20, RND * 200, 20) -NEXT za - -END SUB - -SUB setupal -c = 0 -FOR r = 0 TO 5 - FOR g = 0 TO 5 - FOR b = 0 TO 5 - OUT &H3C8, c - c = c + 1 - OUT &H3C9, r * 12 - OUT &H3C9, g * 12 - OUT &H3C9, b * 12 - NEXT b - NEXT g -NEXT r -END SUB - -SUB square (x1, y1, x2, y2, c, h) - -FOR y = y1 TO y2 - FOR x = x1 TO x2 - landh(x, y) = h - landc(x, y) = c - NEXT x -NEXT y - -END SUB - -SUB start -SCREEN 13 -'PRINT "please wait..." - -setupal - -zmyan = 4.14 -myan2 = 100 -ste = 1 -stem = ste - 1 -dist = 190 -tim$ = TIME$ -zmyx = 170 -zmyy = 170 -zmyz = 20 - -END SUB - -SUB tower (x, y) - -FOR a = 10 TO 0 STEP -1 - square x - a, y - a, x + a, y + a, getcol(100, 0, a * 20), 20 - a -NEXT a - -square x - 11, y - 11, x - 9, y - 9, getcol(255, 0, 0), 20 -square x + 9, y - 11, x + 11, y - 9, getcol(0, 255, 0), 20 -square x - 11, y + 9, x - 9, y + 11, getcol(0, 0, 255), 20 -square x + 9, y + 9, x + 11, y + 11, getcol(255, 255, 0), 20 - -END SUB - -SUB traceline (x, y, xl) - -IF x < 0 THEN - zpr = myx / (myx - x) - x = 0 - y = myy - ((myy - y) * zpr) -END IF - -IF y < 0 THEN - zpr = myy / (myy - y) - y = 0 - x = myx - ((myx - x) * zpr) -END IF - -IF x > 180 THEN - zpr = (180 - myx) / (x - myx) - x = 180 - y = myy - ((myy - y) * zpr) -END IF - -IF y > 180 THEN - zpr = (180 - myy) / (y - myy) - y = 180 - x = myx - ((myx - x) * zpr) -END IF - -lp = SQR(ABS(myx - x) ^ 2 + ABS(myy - y) ^ 2) - -xp = x - myx -yp = y - myy - -yo = 200 - -FOR a = 1 TO lp - cx = xp * a / lp + myx - cy = yp * a / lp + myy - yn = myan2 - ((landh(cx, cy) - myz) * 300) / a - IF yn < yo THEN LINE (xl, yn)-(xl + stem, yo - 1), landc(cx, cy), BF: yo = yn -NEXT a -LINE (xl, yo - 1)-(xl + stem, 0), sky, BF - -END SUB - -SUB updateland - -frm = frm + 1 -ste = 4 -stem = ste - 1 - -zmyan = frm / 15 + pi -'myan2 = myan2 + 5 -'zmyx = SIN(zmyan) * 3 + zmyx -'zmyy = COS(zmyan) * 3 + zmyy -'zmyzs = 2 - -zmyx = 90 - SIN(zmyan) * 91 -zmyy = 90 - COS(zmyan) * 91 - -IF zmyx > 170 THEN zmyx = 170 -IF zmyy > 170 THEN zmyy = 170 -IF zmyx < 10 THEN zmyx = 10 -IF zmyy < 10 THEN zmyy = 10 - -zmyz = SIN(zmyan / 2) * 4 + 4 -zmyz = SIN(zmyan / 2) * 50 + 50 -myan2 = -SIN(zmyan / 2) * 120 + 121 -myan2 = -(SIN(zmyan / 2) * 10 + 10) -IF zmyz < landh(myx, myy) + 10 THEN zmyz = landh(myx, myy) + 10: zmyzs = (zmyzs / 2) + .2 - -myz = zmyz -myy = zmyy -myx = zmyx - -END SUB \ No newline at end of file diff --git "a/Graphics/Presentations/KHK j\303\265ulud/joulud2.bas" "b/Graphics/Presentations/KHK j\303\265ulud/joulud2.bas" deleted file mode 100755 index c8d7a53..0000000 --- "a/Graphics/Presentations/KHK j\303\265ulud/joulud2.bas" +++ /dev/null @@ -1,294 +0,0 @@ -DECLARE SUB playsound (a$) -DECLARE SUB start () -DECLARE SUB turnoff () -DECLARE SUB dispimg (a$) -DECLARE SUB turnon () -DECLARE SUB ellips (x!, y!, s!, v!, t!) -DECLARE SUB prn (x!, y!, msg$, siz!, col1!) -DECLARE SUB timerAdd (element!, time!, value!) -DECLARE SUB timerdisp () -DECLARE SUB timerinit () -DECLARE SUB timerprocess () -DECLARE SUB mo (x!, y!, an!, s!, w!) -DIM SHARED depth -DIM SHARED pi - -DIM SHARED sh1, sh2, sv1, sv2, hp, vp -DIM SHARED timerTime(0 TO 50, 0 TO 100) -DIM SHARED timerValue(0 TO 50, 0 TO 100) - -DIM SHARED timerCplace(0 TO 50) -DIM SHARED timerCtime(0 TO 50) -DIM SHARED timerCvalue(0 TO 50) -DIM SHARED timerLast - - -pi = 3.14128 - -playsound "luule.mp3" -SCREEN 13 -start - -timerinit -2 - - -timerprocess -IF timerCtime(0) > 0 THEN - IF im1 = 0 THEN - dispimg "pikk.i01" - im1 = 1 - END IF -END IF - - - -IF timerCtime(0) > 1.5 THEN - IF im2 = 0 THEN - dispimg "pikk4.i01" - im2 = 1 - END IF -END IF - - -IF timerCtime(0) > 9 THEN - IF im3 = 0 THEN - dispimg "pikk3.i01" - im3 = 1 - END IF -END IF - -IF timerCtime(0) > 17 THEN - IF im4 = 0 THEN - dispimg "pikk2.i01" - im4 = 1 - END IF -END IF - -IF timerCtime(0) > 24 THEN - IF im5 = 0 THEN - dispimg "pikk1.i01" - im5 = 1 - END IF -END IF - -IF timerCtime(0) > 33 THEN - IF im6 = 0 THEN - dispimg "pikk5.i01" - im6 = 1 - END IF -END IF - -IF timerCtime(0) > 41 THEN - IF im7 = 0 THEN - dispimg "pikk.i01" - im7 = 1 - END IF -END IF - - -IF timerCtime(0) > 43 THEN - turnoff -END IF - -'LOCATE 1, 1 -'PRINT timerCtime(0) -GOTO 2 -SYSTEM - -SUB dispimg (a$) - - -OPEN a$ FOR INPUT AS #1 -INPUT #1, xs -INPUT #1, ys - -FOR y = 1 TO ys -FOR x = 1 TO xs -INPUT #1, a -PSET (x - 1, 200 - y), a -NEXT x -NEXT y - - -CLOSE #1 -END SUB - -SUB ellips (x, y, s, v, t) - -IF x > 0 THEN -IF y > 0 THEN - -CIRCLE (x, y), s, v, , , t -PAINT (x, y), v - -END IF -END IF - -END SUB - -SUB playsound (a$) - -SHELL "c:\progra~1\winamp\winamp.exe " + a$ -SCREEN 0 -SCREEN 7, , , 1 - -END SUB - -SUB prn (x, y, msg$, siz, col1) -IF x < 0 THEN GOTO prn1 -IF x > 319 THEN GOTO prn1 - -DIM bck(10000) - -GET (0, 0)-(100, 7), bck -LOCATE 1, 1 -PRINT msg$ - -col = col1 - -FOR x1 = 0 TO LEN(msg$) * 8 - 1 -FOR y1 = 0 TO 7 - IF POINT(x1, y1) > 0 THEN - rx = x1 * siz + x - ry = y1 * siz + y - IF col1 > 100 THEN col = RND * 4 + 10 - IF col1 > 200 THEN - LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, B - ELSE - LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF - END IF -' LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF - END IF -NEXT y1 -NEXT x1 - - -PUT (0, 0), bck, PSET -prn1: -END SUB - -SUB start -c = 0 -FOR r = 0 TO 5 -FOR g = 0 TO 5 -FOR B = 0 TO 5 -OUT &H3C8, c -c = c + 1 -OUT &H3C9, r * 12 -OUT &H3C9, g * 12 -OUT &H3C9, B * 12 -NEXT B -NEXT g -NEXT r - -END SUB - -SUB timerAdd (element, time, value) - -FOR a = 0 TO 100 - IF (timerTime(element, a) = 0) AND (timerValue(element, a) = 0) THEN GOTO timer3 -NEXT a -timer3: - -timerTime(element, a) = time -timerValue(element, a) = value - -END SUB - -SUB timerdisp -LOCATE 1, 1 - -FOR a = 0 TO 10 - PRINT timerCplace(a), timerCtime(a), timerCvalue(a) -NEXT a - -END SUB - -SUB timerinit -timerLast = TIMER - -paus = 24 - -' stuff size -timerAdd 0, 0, 0 -timerAdd 0, 1000, 1000 - -END SUB - -SUB timerprocess - -timerCurrent = TIMER -timerDiff = timerCurrent - timerLast -timerLast = timerCurrent - -FOR a = 0 TO 50 - ctim = timerCtime(a) + timerDiff - Cplace = timerCplace(a) -timer2: - IF timerTime(a, Cplace + 1) = -1 THEN - ctim = 0 - Cplace = 0 - END IF - IF timerTime(a, Cplace + 1) < ctim THEN - IF timerTime(a, Cplace + 1) = 0 THEN - timerCvalue(a) = timerValue(a, Cplace) - GOTO timer1: - END IF - Cplace = Cplace + 1 - GOTO timer2 - END IF - - v1 = timerValue(a, Cplace) - t1 = timerTime(a, Cplace) - v2 = timerValue(a, Cplace + 1) - t2 = timerTime(a, Cplace + 1) - - IF v1 = v2 THEN - timerCvalue(a) = v1 - ELSE - Tdiff1 = t2 - t1 - Tdiff2 = ctim - t1 - Vdiff = v2 - v1 - timerCvalue(a) = Tdiff2 / Tdiff1 * Vdiff + v1 - END IF -timer1: - timerCplace(a) = Cplace - timerCtime(a) = ctim -NEXT a - -END SUB - -SUB turnoff -x = 160 - -FOR y = 100 TO 1 STEP -1 - - LINE (160 - x - 5, 90 - y - 5)-(160 + x + 5, 110 + y + 5), 0, B - LINE (160 - x - 3, 90 - y - 3)-(160 + x + 3, 110 + y + 3), 3, B - LINE (160 - x, 90 - y)-(160 + x, 110 + y), 15, B - - SOUND 0, .1 -NEXT y - - - -FOR x = 160 TO 0 STEP -1 - - LINE (160 - x - 5, 90 - 5)-(160 + x + 5, 110 + 5), 0, B - LINE (160 - x - 3, 90 - 3)-(160 + x + 3, 110 + 3), 1, B - LINE (160 - x, 90)-(160 + x, 110), 15, B - SOUND 0, .05 -NEXT x - -playsound "silent.mp3" -SCREEN 10 -SCREEN 13 -CLS -1 -a$ = INPUT$(1) -GOTO 1 - - -END SUB - diff --git "a/Graphics/Presentations/KHK j\303\265ulud/ray2.bas" "b/Graphics/Presentations/KHK j\303\265ulud/ray2.bas" deleted file mode 100755 index cf8a8b1..0000000 --- "a/Graphics/Presentations/KHK j\303\265ulud/ray2.bas" +++ /dev/null @@ -1,318 +0,0 @@ -DECLARE SUB dispimg () -DECLARE SUB updateland () -DECLARE SUB makeland () -DECLARE FUNCTION getcol! (r!, g!, b!) -DEFINT A-Y -DECLARE SUB traceline (x%, y%, xl) -DECLARE SUB dispframe () -DECLARE SUB tower (x%, y%) -DECLARE SUB square (x1%, y1%, x2%, y2%, c%, h%) -DECLARE SUB displand () -DECLARE SUB start () -DECLARE SUB setupal () - -DIM SHARED landh(0 TO 180, 0 TO 180) -DIM SHARED landc(0 TO 180, 0 TO 180) - -DIM SHARED zmyx, zmyy, zmyz -DIM SHARED myx, myy, myz -DIM SHARED zmyan, myan2 -DIM SHARED ste, stem, dist -DIM SHARED tim$, frm, frmrate -DIM SHARED pi -DIM SHARED white - -sky = getcol(100, 100, 255) -pi = 3.141592 - -frmrate = 10 ' Desired framerate. - ' Lower framerate, better quality - -start -makeland - -'displand -'a$ = INPUT$(1) -myan2 = 2 -OPEN "cat.i01" FOR INPUT AS #1 -INPUT #1, pictxw -INPUT #1, pictyw -INPUT #1, pictx -INPUT #1, picty - - -1 -x1 = RND * 160 -y1 = RND * 160 -x2 = x1 + RND * 10 + 1 -y2 = y1 + RND * 10 + 1 - -IF (frm > 50) AND (frm < 250) THEN square x1, y1, x2, y2, RND * 200, RND * 10 -IF (frm > 250) AND (picty < 177) THEN - - FOR ff = 1 TO 180 * 2 - INPUT #1, c - landc(pictx, picty) = c - landh(pictx, picty) = 0 - pictx = pictx + 1 - IF pictx >= pictxw THEN pictx = 0: picty = picty + 1 - IF picty >= pictyw THEN picty = 0 - NEXT ff -END IF - -IF frm = 430 THEN dispimg -LOCATE 1, 30 -'PRINT frm - -updateland -dispframe -GOTO 1 -CLOSE #1 - -SUB dispframe - -l = 0 -zst = -.0031 * ste -FOR z = .5 TO -.5 STEP zst -traceline SIN(zmyan + z) * dist + myx, COS(zmyan + z) * dist + myy, l -l = l + ste -NEXT z - -END SUB - -SUB dispimg - -CLOSE #1 - - -OPEN "cat.i01" FOR INPUT AS #1 -INPUT #1, pictxw -INPUT #1, pictyw - -FOR y = 0 TO pictyw - 1 -FOR x = 0 TO pictxw - 1 -INPUT #1, c -PSET (x + 50, 150 - y), c -NEXT x -NEXT y - -CLOSE #1 - - -FOR a = 1 TO 50 - SOUND 0, 1 -NEXT a -CHAIN "KHKDEMO2.BAS" - -END SUB - -SUB displand - - -FOR z = 0 TO 180 -zs = 1 -IF z > 120 THEN zs = .7 -IF z > 160 THEN zs = .6 -FOR zx = 0 TO 180 STEP zs -y1 = landh(zx, z) - 80 -zx1 = zx - 90 -z1 = 300 - z -zx2 = zx1 / z1 * 190 -zy2 = y1 / z1 * 190 - -LINE (zx2 + 160, 40 - zy2)-(zx2 + 160, 200), landc(zx, z) -NEXT zx -NEXT z - -LOCATE 1, 1 -PRINT "Press any key to continue..." - -END SUB - -DEFSNG A-Y -FUNCTION getcol (r, g, b) -IF r < 0 THEN r = 0 -IF g < 0 THEN g = 0 -IF b < 0 THEN b = 0 -IF r > 255 THEN r = 255 -IF g > 255 THEN g = 255 -IF b > 255 THEN b = 255 -getcol = INT(r / 43) * 36 + INT(g / 43) * 6 + INT(b / 43) -END FUNCTION - -DEFINT A-Y -SUB makeland - -square 0, 0, 180, 180, 15, 0 - -FOR y = 0 TO 180 -FOR x = 0 TO 180 -x1 = (x \ 10) MOD 2 -y1 = (y \ 10) MOD 2 -c = (x1 + y1) MOD 2 -IF c = 0 THEN - landc(x, y) = getcol(250, 250, 250) -ELSE - landc(x, y) = getcol(250, 50, 50) -END IF -NEXT x -NEXT y - -FOR y = 10 TO 90 -FOR x = 90 TO 170 -v = SQR((ABS(50 - y)) ^ 2 + (ABS(130 - x)) ^ 2) -h = SQR((60 - v) * (60 + v)) - 35 -IF h > 0 THEN landh(x, y) = h -NEXT x -NEXT y - -tower 20, 20 -tower 60, 20 -tower 40, 150 - - -FOR za = 0 TO 20 STEP .1 -x = SIN(za) * (1 + (za * 2)) + 100 -y = COS(za) * (1 + (za * 2)) + 100 -landc(x, y) = getcol(20, RND * 200, 20) -landc(x + 1, y) = getcol(20, RND * 200, 20) -landc(x, y + 1) = getcol(20, RND * 200, 20) -landc(x + 1, y + 1) = getcol(20, RND * 200, 20) -NEXT za - -END SUB - -SUB setupal -c = 0 -FOR r = 0 TO 5 -FOR g = 0 TO 5 -FOR b = 0 TO 5 -OUT &H3C8, c -c = c + 1 -OUT &H3C9, r * 12 -OUT &H3C9, g * 12 -OUT &H3C9, b * 12 -NEXT b -NEXT g -NEXT r -END SUB - -SUB square (x1, y1, x2, y2, c, h) - -FOR y = y1 TO y2 -FOR x = x1 TO x2 -landh(x, y) = h -landc(x, y) = c -NEXT x -NEXT y - -END SUB - -SUB start -SCREEN 13 -'PRINT "please wait..." - -setupal - -zmyan = 4.14 -myan2 = 100 -ste = 1 -stem = ste - 1 -dist = 190 -tim$ = TIME$ -zmyx = 170 -zmyy = 170 -zmyz = 20 - -END SUB - -SUB tower (x, y) - -FOR a = 10 TO 0 STEP -1 -square x - a, y - a, x + a, y + a, getcol(100, 0, a * 20), 20 - a -NEXT a - -square x - 11, y - 11, x - 9, y - 9, getcol(255, 0, 0), 20 -square x + 9, y - 11, x + 11, y - 9, getcol(0, 255, 0), 20 -square x - 11, y + 9, x - 9, y + 11, getcol(0, 0, 255), 20 -square x + 9, y + 9, x + 11, y + 11, getcol(255, 255, 0), 20 - - -END SUB - -SUB traceline (x, y, xl) - -IF x < 0 THEN -zpr = myx / (myx - x) -x = 0 -y = myy - ((myy - y) * zpr) -END IF - -IF y < 0 THEN -zpr = myy / (myy - y) -y = 0 -x = myx - ((myx - x) * zpr) -END IF - -IF x > 180 THEN -zpr = (180 - myx) / (x - myx) -x = 180 -y = myy - ((myy - y) * zpr) -END IF - -IF y > 180 THEN -zpr = (180 - myy) / (y - myy) -y = 180 -x = myx - ((myx - x) * zpr) -END IF - -lp = SQR(ABS(myx - x) ^ 2 + ABS(myy - y) ^ 2) - -xp = x - myx -yp = y - myy - -yo = 200 - -FOR a = 1 TO lp - cx = xp * a / lp + myx - cy = yp * a / lp + myy - yn = myan2 - ((landh(cx, cy) - myz) * 300) / a - IF yn < yo THEN LINE (xl, yn)-(xl + stem, yo - 1), landc(cx, cy), BF: yo = yn -NEXT a -LINE (xl, yo - 1)-(xl + stem, 0), sky, BF - -END SUB - -SUB updateland - -frm = frm + 1 -ste = 4 -stem = ste - 1 - - -zmyan = frm / 15 + pi -'myan2 = myan2 + 5 -'zmyx = SIN(zmyan) * 3 + zmyx -'zmyy = COS(zmyan) * 3 + zmyy -'zmyzs = 2 - -zmyx = 90 - SIN(zmyan) * 91 -zmyy = 90 - COS(zmyan) * 91 - -IF zmyx > 170 THEN zmyx = 170 -IF zmyy > 170 THEN zmyy = 170 -IF zmyx < 10 THEN zmyx = 10 -IF zmyy < 10 THEN zmyy = 10 - -zmyz = SIN(zmyan / 2) * 4 + 4 -zmyz = SIN(zmyan / 2) * 50 + 50 -myan2 = -SIN(zmyan / 2) * 120 + 121 -myan2 = -(SIN(zmyan / 2) * 10 + 10) -IF zmyz < landh(myx, myy) + 10 THEN zmyz = landh(myx, myy) + 10: zmyzs = (zmyzs / 2) + .2 - -myz = zmyz -myy = zmyy -myx = zmyx - -END SUB -