Hallo an alle,
ich habe gerade meinen alten Bildschirmschoner Circles etwas aufgepeppt und neukompiliert. Ich benutze ihn
gerne zum Entspannen, wenn ich mal wieder einen stressigen Tag hatte. Ich hoffe er gefällt euch!
Hab zwei Versionen draus gemacht, einmal als normale Exe und nochmal als Screensaver.
https://dl.dropbox.com/u/79165522/circles.zip
Grüsse
Darie
Circles2.0
Re: Circles2.0
Repeat
PureBasic
ForEver
PureBasic
ForEver
Re: Circles2.0
Sorry, dass meine Links down gewesen sind. Deswegen poste ich mal meinen aktuellen Code.
Code: Alles auswählen
;*************************************************************************************************************************
;************************************************** CIRCLES Bildschirmschoner **************************************************
;************************************************** by Alexander Diaconu ******************************************************
;*************************************************************************************************************************
; Lizenzvereinbarung / Urheberrechtshinweise
;
; a) ENDBENUTZERVERTRAG:
; Mit Installation und/oder Verwendung dieser Software sowie der Weitergabe an Dritte akzeptiert der Anwender diese Lizenzvereinbarung.
;
; 1. CIRCLES ist kostenlos! Der Anwender ist berechtigt, diese Software zu benutzen und kostenfrei an Dritte weiterzugeben. Eine Nutzung im kommerziellen Bereich ist
; nur mit dem Einverständnis und unter den Bedingungen des Authors erlaubt.
; 2. Haftungsauschluss: der Autor dieses Programmes kann unter keinen Umständen, eingeschlossen Fahrlässigkeit, für Schäden jeglicher Art (inklusive Datenverlust,
; Gewinn-/Umsatzeinbußen, die durch Verwendung oder Verbreitung der Software verursacht werden, zur Verantwortung gezogen werden.
;
; 2016 Copyright by Alexander Diaconu
; ************************************************************************************************************************
; Init
Declare Run()
Declare About()
Global Kreise.w
Global Abstand = 2
Global Delay = 5
Global Delay2 = 300
Global BreakID.b
Global Started = 0
; ************************************************************************************************************************
Macro RandomizeColors
Farbe1 = RGB(Random(255), Random(255), Random(255))
Farbe2 = RGB(Random(255), Random(255), Random(255))
Farbe3 = RGB(Random(255), Random(255), Random(255))
Farbe4 = RGB(Random(255), Random(255), Random(255))
Farbe5 = RGB(Random(255), Random(255), Random(255))
Farbe6 = RGB(Random(255), Random(255), Random(255))
;Farbe1 = RGBA(Random(255), Random(255), Random(255),Random(255))
;Farbe2 = RGBA(Random(255), Random(255), Random(255),Random(255))
;Farbe3 = RGBA(Random(255), Random(255), Random(255),Random(255))
;Farbe4 = RGBA(Random(255), Random(255), Random(255),Random(255))
;Farbe5 = RGBA(Random(255), Random(255), Random(255),Random(255))
;Farbe6 = RGBA(Random(255), Random(255), Random(255),Random(255))
EndMacro
Macro RandomArea(StartValue, EndValue, StepValue)
( Random(Int(((EndValue)-(StartValue))/(StepValue)))*(StepValue)+(StartValue) )
EndMacro
Procedure Run()
ShowCursor_(0)
InitKeyboard()
InitSprite()
Desk=ExamineDesktops()
Screen_X = DesktopWidth(0)
Screen_Y = DesktopHeight(0)
; Debug Desk
; Debug Screen_X
; Debug Screen_Y
; Debug DesktopX(1)
; Debug DesktopY(1)
; End
;GetCursorPos_(Maus.Point)
;Screen_X = GetSystemMetrics_(#SM_CXSCREEN)
;Screen_Y = GetSystemMetrics_(#SM_CYSCREEN)
WinID = OpenWindow(0, 0, 0, Screen_X, Screen_Y, "",#PB_Window_BorderLess)
OpenWindowedScreen(WinID, 0, 0, Screen_X, Screen_Y,0,0,0,0) : StickyWindow(0, 1) ;: SetFrameRate(57)
Kreise = Sqr(Pow(Screen_X/2,2) + Pow(Screen_Y/2,2))
ClearScreen($000000)
Sprite = 0 : CreateSprite(Sprite,Screen_X,Screen_Y,#PB_Sprite_AlphaBlending)
posx = -screen_x/2
posy = -screen_y/2
Repeat
Select Mode
Case 0
x1 = Random(Screen_X) : y1 = Random(Screen_Y)
lum = RandomArea(30, 50, 5)
Case 1
x1 = Random(Screen_X*1.7) : y1 = Random(Screen_Y*1.7)
;lum = 20
lum = RandomArea(20, 40, 10)
EndSelect
x2 = x1 + Random(2)
RandomizeColors : Radius = 0
;Timer = 2500
Timer = RandomArea(Random(1000,200), Random(8700, 2600), 10); Random(100,10))
;If Started = 1 : Delay(Delay2) : Else : Started = 1 : EndIf
;Abstand = Random(2,1)
For Radius = 1 To Kreise
Select Mode
Case 0
DisplayTransparentSprite(Sprite, 0, 0, lum)
;SpriteBlendingMode(#PB_Sprite_BlendInvertSourceColor,#PB_Sprite_BlendDestinationColor)
Delay(Delay)
Case 1
RotateSprite(Sprite, Gamma.f, #PB_Relative) ;: ZoomSprite(Sprite, Screen_X+RandomArea(-100,100,1), Screen_Y+RandomArea(-100,100,1))
;ZoomSprite(Sprite, SpriteWidth(Sprite)+RandomArea(-10,10,1), SpriteHeight(Sprite)+RandomArea(-10,10,1))
DisplayTransparentSprite(Sprite, posx, posy, lum)
;Delay(0)
EndSelect
FlipBuffers()
;If Radius = Kreise : Delay(Delay) : EndIf
;GetCursorPos_(temp.POINT)
;If Maus\x <> temp\x : Break_ID = 1 : Break : EndIf
;If Maus\y <> temp\y : Break_ID = 1 : Break : EndIf
ExamineKeyboard()
If KeyboardReleased(#PB_Key_P)
Select Psychedelic
Case 0 : Psychedelic = 1
Case 1 : Psychedelic = 0
EndSelect
EndIf
If KeyboardReleased(#PB_Key_Space)
Select Mode
Case 0
Mode = 1 : Radius = 1 : ClearScreen($000000) : Gamma.f = RandomArea(-0.14, 0.14, 0.01)
Kreise = Sqr(Pow(Screen_X/2,2) + Pow(Screen_Y/2,2)) * 2
x1 = Screen_X + RandomArea(-300, 300, 1) : y1 = Screen_Y + RandomArea(-300, 300, 1)
Sprite = 0 : FreeSprite(Sprite) : CreateSprite(Sprite,Screen_X*2,Screen_Y*2,#PB_Sprite_AlphaBlending)
RandomizeColors : Psychedelic = 0
Case 1
x1 = Random(Screen_X) : y1 = Random(Screen_Y) : y2 = y1 : x2 = x1 + Random(2)
Mode = 0 : Radius = 1 : ClearScreen($000000) : Delay = 5
Kreise = Sqr(Pow(Screen_X/2,2) + Pow(Screen_Y/2,2))
Sprite = 0 : FreeSprite(Sprite) : CreateSprite(Sprite,Screen_X,Screen_Y,#PB_Sprite_AlphaBlending)
RandomizeColors : Psychedelic = 0
EndSelect
EndIf
If Mode = 0
If KeyboardReleased(#PB_Key_Add)
Delay-1 : If Delay < 0 : Delay = 0 : EndIf
ElseIf KeyboardReleased(#PB_Key_Subtract)
Delay+1 : If Delay > 30 : Delay = 30 : EndIf
EndIf
EndIf
If KeyboardReleased(#PB_Key_Divide)
Gamma.f - 0.01 : If Gamma.f < -1.4 : Gamma.f = 0.01 : EndIf
If Gamma.f = 0 : Gamma.f = - 0.01 : EndIf
;ZoomSprite(Sprite, SpriteWidth(Sprite)+10, SpriteHeight(Sprite)+10)
ElseIf KeyboardReleased(#PB_Key_Multiply)
Gamma.f + 0.01 : If Gamma.f > 1.4 : Gamma.f = 1.4 : EndIf
;ZoomSprite(Sprite, SpriteWidth(Sprite)-10, SpriteHeight(Sprite)-10)
If Gamma.f = 0 : Gamma.f = 0.01 : EndIf
EndIf
If KeyboardReleased(#PB_Key_Pad0) : Gamma.f = 0.01 : EndIf
If KeyboardReleased(#PB_Key_PadEnter) : Gamma.f = 1.4 : EndIf
If KeyboardPushed(#PB_Key_Escape) <> 0 : Quit = 1 : Break : EndIf
Repeat
Event = WindowEvent()
Until Event = 0
t = ElapsedMilliseconds()
If t >= M1 + Timer
If Psychedelic = 1
If DrawPsychedelic = 0 : DrawPsychedelic = 1 : Else : DrawPsychedelic = 0 : EndIf
EndIf
M1 = t
EndIf
StartDrawing(SpriteOutput(Sprite))
If DrawPsychedelic = 0
DrawingMode(#PB_2DDrawing_Gradient|#PB_2DDrawing_Outlined)
Else
DrawingMode(#PB_2DDrawing_Gradient|#PB_2DDrawing_Outlined|#PB_2DDrawing_XOr)
EndIf
;ConicalGradient(x1,y1, Random(90))
;LinearGradient(screen_x*2, screen_y*2,screen_x, screen_y);EllipticalGradient(x1, y1, Random(Screen_X),Random(Screen_Y))
ResetGradientColors()
GradientColor(0.0, Farbe1)
If Mode = 1 : GradientColor(0.5, Farbe2) : EndIf
GradientColor(1.0, Farbe3)
CircularGradient(x1, y1, Kreise)
Circle(x1,y1, Radius * Abstand)
GradientColor(0.0, Farbe4)
If Mode = 1 : GradientColor(0.5, Farbe5) : EndIf
GradientColor(1.0, Farbe6)
CircularGradient(x1, y1, Kreise)
Circle(x2,y1, (Kreise - Radius + 1) * Abstand)
StopDrawing()
Next Radius
Until Quit
CloseWindow(0)
End
EndProcedure
;****************************************************************************************************************
Procedure About()
MessageRequester("Circles V2.1"," Copyright 2015 by Alexander Diaconu", #PB_MessageRequester_Ok)
EndProcedure
;****************************************************************************************************************
; Parameter1.s = ProgramParameter() : Fenster_ID.s
; If Len(Parameter1) > 2
; Fenster_ID = Mid(Parameter1,4,Len(Parameter1) - 3)
; Else
; Fenster_ID = ProgramParameter()
; EndIf
; Parameter1 = Mid(Parameter1,2,1)
;
; If FindString(Parameter1, "s",#PB_Ignore,#PB_String_NoCase) : Run() : EndIf
; If FindString(Parameter1, "c",#PB_Ignore,#PB_String_NoCase) : About() : EndIf
;Parameterabfrage mit Delay
;Repeat : param.s= ProgramParameter() : Parameter1.s + param.s : Until param.s = "" ; : Debug parameter1.s : End
;If FindString(Parameter1, "delay=",#PB_Ignore,#PB_String_NoCase) : pos = FindString(Parameter1, "delay=",#PB_Ignore,#PB_String_NoCase) : Delay=Val(Mid(Parameter1, pos+6 )) : EndIf
Run()
Repeat
PureBasic
ForEver
PureBasic
ForEver