! Dimension arrays & variables DIM RECT_OLD AS RECT DIM RECT_NEW AS RECT DIM PALETTE%(3, 15) !----------- ! Functions !----------- ! Returns the RGB value for a given color. DEF FN RGB(R%, G%, B%) = R% * $100 + G% * $10 + B% ! Define color palettes ! 0) Gray ! 1) Red ! 2) Green ! 3) Blue FOR ENTRY% = 1 TO 15 COLOR% = 16 - ENTRY% RGB% = FN RGB(COLOR%, COLOR%, COLOR%) PALETTE%(0, ENTRY%) = RGB% RGB% = FN RGB(COLOR%, 0, 0) PALETTE%(1, ENTRY%) = RGB% RGB% = FN RGB(0, COLOR%, 0) PALETTE%(2, ENTRY%) = RGB% RGB% = FN RGB(0, 0, COLOR%) PALETTE%(3, ENTRY%) = RGB% NEXT ! Start QuickDraw II HGR ! Draw rain drops until a key is pressed. KEY% = 0 DO UNTIL KEY% > 127 ! Select a color palette PALETTE_ID% = RND (1) * 4 IF PALETTE_ID% = 4 THEN PALETTE_ID% = 3 ! Load the color palette FOR ENTRY% = 1 TO 15 COLOR% = PALETTE%(PALETTE_ID%, ENTRY%) SETCOLORENTRY (0, ENTRY%, COLOR%) NEXT ! Set the splash location. X% = RND (1) * 320 Y% = RND (1) * 200 ! Draw the doplet. FOR DROP_Y% = 0 TO Y% HCOLOR= 15 HPLOT X%, DROP_Y% HCOLOR= 0 HPLOT X%, DROP_Y% - 3 NEXT ! Draw the splash. RECT_OLD.H1 = X% RECT_OLD.H2 = X% RECT_OLD.V1 = Y% RECT_OLD.V2 = Y% FOR RADIUS% = 1 TO 15 RADIUS_X% = RADIUS% * (1 + Y% / 100) RADIUS_Y% = RADIUS_X% / 4 RECT_NEW.H1 = X% - RADIUS_X% RECT_NEW.H2 = X% + RADIUS_X% RECT_NEW.V1 = Y% - RADIUS_Y% RECT_NEW.V2 = Y% + RADIUS_Y% COLOR% = RADIUS% SET640COLOR (COLOR%) FRAMEOVAL (RECT_NEW) SET640COLOR (0) FRAMEOVAL (RECT_OLD) RECT_OLD = RECT_NEW NEXT SET640COLOR (0) FRAMEOVAL (RECT_OLD) KEY% = PEEK ($00C000) LOOP END