SCREEN 7, , , 1\r
\r
+' Main loop label\r
1\r
-LINE (0, 0)-(319, 199), RND, BF\r
-SOUND 0, 1\r
-frm = frm + 1\r
-st = (SIN(frm / 10) + 2) / 3\r
-x = SIN(frm / 30) * 50\r
-y = COS(frm / 42) * 30\r
-\r
-\r
-FOR a = .1 TO 10 STEP st\r
- CIRCLE (160 + x, 100 + y), 80, 10, , , a\r
-NEXT a\r
-\r
-c = RND * 2 + 12\r
-FOR a = 0 TO 50\r
- f = (a + frm) / 12\r
- f2 = (a + frm) / 7\r
- x1 = SIN(f) * 50\r
- y1 = COS(f) * 30\r
- x2 = SIN(f2 + 6) * 80\r
- y2 = COS(f2 + 6) * 120\r
- LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), c\r
-NEXT a\r
-\r
-FOR a = 0 TO 50\r
- f = (a * 15 + frm) / 12\r
- f2 = (a * 15 + frm) / 7\r
- x1 = SIN(f) * 50\r
- y1 = COS(f) * 30\r
- x2 = SIN(f2 + 6) * 80\r
- y2 = COS(f2 + 6) * 120\r
- CIRCLE (x1 + 80, y1 + 50), a / 2, 14\r
- PAINT (x1 + 80, y1 + 50), 14\r
-NEXT a\r
-\r
-\r
-FOR a = 0 TO 15\r
- f = (a + frm) / 12\r
- f2 = (a + frm) / 7\r
- x1 = SIN(f) * 50\r
- y1 = COS(f) * 30\r
- x2 = SIN(f2 + 6) * 80\r
- y2 = COS(f2 + 6) * 120\r
- LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), c\r
-NEXT a\r
- \r
-FOR a = 0 TO 50\r
- x = RND * 320\r
- y = RND * 320\r
- PSET (x, y), RND * 15\r
-NEXT a\r
-\r
-PCOPY 0, 1\r
-CLS\r
-\r
-IF frm > 100 THEN GOTO 2\r
-GOTO 1\r
-2\r
-CHAIN "KHKDEMO4.BAS"\r
+ ' Clear the screen\r
+ LINE (0, 0)-(319, 199), 0, BF\r
+\r
+ ' Delay, to limit animation speed\r
+ SOUND 0, 1\r
+\r
+ ' Increment frame counter\r
+ frm = frm + 1\r
+\r
+ ' Calculate step size based on sine wave\r
+ stpSize = (SIN(frm / 10) + 2) / 3\r
+\r
+ ' Calculate x and y offsets based on sine and cosine waves\r
+ xOffset = SIN(frm / 30) * 50\r
+ yOffset = COS(frm / 42) * 30\r
+\r
+ ' Draw circles with varying arc sizes\r
+ FOR a = .1 TO 10 STEP stpSize\r
+ CIRCLE (160 + xOffset, 100 + yOffset), 80, 10, , , a\r
+ NEXT a\r
+\r
+ ' Calculate random color\r
+ colr = RND * 2 + 12\r
+\r
+ ' Draw lines between points calculated using sine and cosine waves\r
+ FOR a = 0 TO 50\r
+ f1 = (a + frm) / 12\r
+ f2 = (a + frm) / 7\r
+ x1 = SIN(f1) * 50\r
+ y1 = COS(f1) * 30\r
+ x2 = SIN(f2 + 6) * 80\r
+ y2 = COS(f2 + 6) * 120\r
+ LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), colr\r
+ NEXT a\r
\r
+ ' Draw and fill circles with varying radii\r
+ FOR a = 0 TO 50\r
+ f1 = (a * 15 + frm) / 12\r
+ f2 = (a * 15 + frm) / 7\r
+ x1 = SIN(f1) * 50\r
+ y1 = COS(f1) * 30\r
+ x2 = SIN(f2 + 6) * 80\r
+ y2 = COS(f2 + 6) * 120\r
+ CIRCLE (x1 + 80, y1 + 50), a / 2, 14\r
+ PAINT (x1 + 80, y1 + 50), 14\r
+ NEXT a\r
+\r
+ ' Draw additional lines between points calculated using sine and cosine waves\r
+ FOR a = 0 TO 15\r
+ f1 = (a + frm) / 12\r
+ f2 = (a + frm) / 7\r
+ x1 = SIN(f1) * 50\r
+ y1 = COS(f1) * 30\r
+ x2 = SIN(f2 + 6) * 80\r
+ y2 = COS(f2 + 6) * 120\r
+ LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), colr\r
+ NEXT a\r
+\r
+ ' Draw random points on the screen\r
+ FOR a = 0 TO 50\r
+ x = RND * 320\r
+ y = RND * 320\r
+ PSET (x, y), RND * 15\r
+ NEXT a\r
+\r
+ ' Copy active page to visual page for smooth animation\r
+ PCOPY 0, 1\r
+\r
+ ' Clear the screen\r
+ CLS\r
+\r
+ ' Check if frame counter exceeds 100\r
+ IF frm > 100 THEN GOTO 2\r
+\r
+ ' Continue loop\r
+ GOTO 1\r
+\r
+' Exit label\r
+2\r
+ ' Chain to another program\r
+ CHAIN "KHKDEMO4.BAS"\r