EAZ by EatMe
' THIS IS THE QUICKBASIC 4.5 SOURCE CODE OF FREEWARE UNLIMITED FLOWER FRACTAL PIXEL PAINTING ' EAZ.EXE / EAZ2.EXE (EAZ) BY EatMe - www.eatme.pro - SOURCE RELEASED 2013 DECEMBER 19 ' THIS CODE IS FREE TO RE-USE. DISPLAY OF A LINK: ' "(parts of) source code of EAZ by EatMe - www.eatme.pro" ' IN YOUR SOFTWARE/PRODUCTS CREDITS SECTION WOULD BE APPRECIATED DIM iSlide IF INSTR(COMMAND$, "?") > 0 THEN SCREEN 0, 0, 0, 0 COLOR 7, 0 CLS COLOR 15, 9 LOCATE 1, 1 PRINT " SuperScreenSaver! by EatMe 2001-2003 " COLOR 15, 0 LOCATE 3, 1 PRINT " Command line parameters:" PRINT PRINT " -i skip the intro" PRINT " -s no color sliding" PRINT PRINT " This screen saver is FREEWARE and may be distributed." PRINT " You may use this screen saver for public performances." PRINT PRINT "Smash the keyboard..." DO WHILE INKEY$ <> "": LOOP: SLEEP: DO WHILE INKEY$ <> "": LOOP COLOR 7, 0 END END IF IF INSTR(LCASE$(COMMAND$), "-s") = 0 THEN iSlide = 1 ELSE iSlide = 0 IF iSlide = 1 THEN SCREEN 12 ELSE SCREEN 9, , 1, 0 END IF WINDOW SCREEN (-410, -410)-(410, 410) IF INSTR(LCASE$(COMMAND$), "-i") = 0 THEN GOSUB DrawEaz TYPE udtPixel NrOfPoints AS INTEGER Radius AS INTEGER TurnFactor AS DOUBLE END TYPE DIM PaletteIndex(2, 15) AS INTEGER DIM PaletteDirection(2, 15) AS INTEGER DIM Pixels(380) AS udtPixel DIM iCCChance AS INTEGER 'ColorChangeChance DIM ColorChance AS INTEGER DIM i AS DOUBLE DIM j AS INTEGER DIM k AS INTEGER DIM l& DIM PixelDirection AS INTEGER DIM RadiusDirection AS INTEGER DIM MaxPixels AS LONG DIM TurnStep AS SINGLE DIM TwoPI AS DOUBLE DIM timewait! DIM Quit$ DIM CurrentColor AS INTEGER DIM DrawColor AS INTEGER DIM DrawTurn AS DOUBLE DIM DrawRadius AS INTEGER TwoPI = 3.141592653589793# * 2 MaxPixels = UBOUND(Pixels) TurnStep = .1 CurrentColor = 7 FOR j = 0 TO MaxPixels - 1 Pixels(j).NrOfPoints = 4 NEXT IF iSlide = 1 THEN GOSUB SetPalette DO timewait! = TIMER ' Move array of points FOR j = 1 TO MaxPixels Pixels(MaxPixels + 1 - j) = Pixels(MaxPixels - j) NEXT ' Calculate next point RANDOMIZE TIMER IF RadiusDirection = 0 THEN Pixels(0).Radius = Pixels(1).Radius + 1 ELSE Pixels(0).Radius = Pixels(1).Radius - 1 END IF IF INT(RND * 80) = 0 THEN Pixels(0).NrOfPoints = 2 * (INT(RND * 7) + 2) ELSE Pixels(0).NrOfPoints = Pixels(1).NrOfPoints END IF ' Bounds checks IF Pixels(0).Radius > 300 THEN RadiusDirection = 1 IF Pixels(0).Radius < 1 THEN RadiusDirection = 0: Pixels(0).Radius = 1 ' Random changes IF INT(RND * 100) = 1 THEN IF PixelDirection = 0 THEN PixelDirection = 1 ELSE PixelDirection = 0 END IF iCCChance = 50 IF INT(RND * 133) = 0 THEN TurnStep = .1 * (10 / ((INT(RND * 10) + 1)) - 1) iCCChance = 5 ' Color Change Chance becomes quite big END IF IF INT(RND * iCCChance) = 0 THEN j = INT(RND * 4) IF j = 0 THEN ColorChance = 0 IF j = 1 THEN ColorChance = 133 IF j = 2 THEN ColorChance = 166 IF j = 3 THEN ColorChance = 199 IF INT(RND * ColorChance) = 0 THEN CurrentColor = INT(RND * 15) + 1 END IF IF iSlide = 1 THEN GOSUB SlidePalette ' next turn factor IF PixelDirection = 0 THEN Pixels(0).TurnFactor = Pixels(1).TurnFactor + TurnStep ELSE Pixels(0).TurnFactor = Pixels(1).TurnFactor - TurnStep END IF IF Pixels(0).TurnFactor > TwoPI THEN Pixels(0).TurnFactor = Pixels(0).TurnFactor - TwoPI IF Pixels(0).TurnFactor < 0 THEN Pixels(0).TurnFactor = Pixels(0).TurnFactor + TwoPI ' Paint points NrOfPoints = Pixels(0).NrOfPoints DrawTurn = Pixels(0).TurnFactor DrawRadius = Pixels(0).Radius DrawColor = CurrentColor GOSUB PaintPixels NrOfPoints = Pixels(MaxPixels).NrOfPoints DrawTurn = Pixels(MaxPixels).TurnFactor DrawRadius = Pixels(MaxPixels).Radius DrawColor = 0 GOSUB PaintPixels DO WHILE TIMER - .05 < timewait! AND TIMER > 1 IF INKEY$ <> "" THEN Quit$ = "x": EXIT DO LOOP LOOP UNTIL Quit$ <> "" ' Exit SCREEN 0, 0, 0, 0 COLOR 7, 0 CLS COLOR 15, 9 'PRINT SPACE$(80) LOCATE 1, 1 PRINT " SuperScreenSaver! by EatMe 2001-2003 " COLOR 15, 0 LOCATE 3, 1 END PaintPixels: FOR i = 0 TO TwoPI STEP (TwoPI / NrOfPoints) DrawTurn = DrawTurn + i IF DrawTurn > TwoPI THEN DrawTurn = DrawTurn - TwoPI WINDOW SCREEN (-410, -410)-(410, 410) CIRCLE (0, 0), DrawRadius, DrawColor, DrawTurn, DrawTurn NEXT IF iSlide = 0 THEN PCOPY 1, 0 RETURN SetPalette: FOR k = 1 TO 15 FOR j = 0 TO 2 PaletteDirection(j, k) = 0 NEXT NEXT 'PaletteIndex%(0, 0) = 0 ' Black (Default background color) 'PaletteIndex%(1, 0) = 0 'PaletteIndex%(2, 0) = 0 PaletteIndex%(0, 1) = 46 ' Dark Blue PaletteIndex%(1, 1) = 4 PaletteIndex%(2, 1) = 4 PaletteIndex%(0, 2) = 2 ' Dark green PaletteIndex%(1, 2) = 40 PaletteIndex%(2, 2) = 2 PaletteIndex%(0, 3) = 30 ' Dark DarkBlue (EatMe) PaletteIndex%(1, 3) = 20 PaletteIndex%(2, 3) = 1 PaletteIndex%(0, 4) = 2 ' Dark Red PaletteIndex%(1, 4) = 2 PaletteIndex%(2, 4) = 39 PaletteIndex%(0, 5) = 42 ' Sorta Purple PaletteIndex%(1, 5) = 2 PaletteIndex%(2, 5) = 37 PaletteIndex%(0, 6) = 2 ' Orange PaletteIndex%(1, 6) = 23 PaletteIndex%(2, 6) = 63 PaletteIndex%(0, 7) = 39 ' Light Gray PaletteIndex%(1, 7) = 39 PaletteIndex%(2, 7) = 39 PaletteIndex%(0, 8) = 20 ' Dark grey PaletteIndex%(1, 8) = 20 PaletteIndex%(2, 8) = 20 PaletteIndex%(0, 9) = 63 ' Light Blue PaletteIndex%(1, 9) = 22 PaletteIndex%(2, 9) = 22 PaletteIndex%(0, 10) = 5 ' Light green PaletteIndex%(1, 10) = 60 PaletteIndex%(2, 10) = 5 PaletteIndex%(0, 11) = 57 ' Light DarkBlue / Turqoise PaletteIndex%(1, 11) = 57 PaletteIndex%(2, 11) = 2 PaletteIndex%(0, 12) = 2 ' Light Red PaletteIndex%(1, 12) = 2 PaletteIndex%(2, 12) = 63 PaletteIndex%(0, 13) = 58 ' Light purple/pink PaletteIndex%(1, 13) = 5 PaletteIndex%(2, 13) = 58 PaletteIndex%(0, 14) = 9 ' Yellow PaletteIndex%(1, 14) = 61 PaletteIndex%(2, 14) = 62 PaletteIndex%(0, 15) = 63 ' Brigth white PaletteIndex%(1, 15) = 63 PaletteIndex%(2, 15) = 63 RETURN SlidePalette: ' Slide color palette FOR k = 1 TO 15 FOR j = 0 TO 2 IF PaletteIndex(j, k) > 58 THEN PaletteDirection(j, k) = 1 IF PaletteIndex(j, k) < 5 THEN PaletteDirection(j, k) = 0 IF PaletteDirection(j, k) = 0 THEN PaletteIndex(j, k) = PaletteIndex(j, k) + (RND * 2) ELSEIF PaletteDirection(j, k) = 1 THEN PaletteIndex(j, k) = PaletteIndex(j, k) - (RND * 2) END IF IF INKEY$ <> "" THEN Quit$ = "x": RETURN NEXT l& = PaletteIndex(0, k) l& = l& + (256 * PaletteIndex(1, k)) l& = l& + (65536 * PaletteIndex(2, k)) PALETTE k, l& NEXT RETURN DrawEaz: COLOR 9 IF iSlide = 1 THEN LOCATE 8, 9 ELSE LOCATE 9, 9 PRINT "2001 - 2003" LOCATE 12, 9 COLOR 15 PRINT "This screen saver is FREEWARE and may be distributed." LOCATE 13, 9 PRINT "You may use this screen saver for public performances." DRAW "bm84,95 c9 u3 r1 u2 r1 u1 e2 r1 u1 r2 u1 r3 u1" DRAW "r3 d1 r2 d1 r1 f2 d1 r1 d2 r1 d3 r1" DRAW "l20" DRAW "d4 r1 d2 r1 d1 f1 d1 r1 d1 r3 d1 r1 d1 r1" DRAW "r3 u1 r2 u1 r1 e5 " DRAW "f7 bh2 l4 bu18 r20 g14 bd6 r14 bl8 h8 l4 bd8 bl3r6" IF iSlide = 0 THEN PCOPY 1, 0 timewait! = TIMER DO WHILE TIMER - 4 < timewait! AND TIMER > 1 IF INKEY$ <> "" THEN EXIT DO LOOP CLS DO UNTIL INKEY$ = "" LOOP RETURN ' END OF CODE ' BY EatMe - www.eatme.pro
[ back to the prod ]