Tutorial
Bildschirmschoner Erweiterungen
von Volta | Seite 4 von 4 |
1. Testmodus
2. Abbruch bei Mausbewegung
_ 2.1. Mausabfrage
_ 2.2. ScreenEvent ab FB 0.17b
3. Kleine bunte Animation
Aus diesem kleinen Listing, das einmal einen Ball simulierte der von den Begrenzungen abprallt, lies sich schnell ein sehr bunter Screensaver erstellen.
Dim As Integer x=0, y=0, xs, ys, breite, hoehe, radius, farbe
Screen 18, 32 ' Grafik initialisieren
Setmouse ,,0 ' Maussymbol nicht anzeigen
Randomize Timer
Screeninfo breite, hoehe
xs = breite \100 'horizontale Geschwindigkeit
ys = hoehe \80 'vertikale Geschwindigkeit
radius = (Rnd(4) +xs +ys) \2
farbe = &H0ff000 'Ausgangsfarbe
Do
Screenlock 'verhindert unschönes Bildschirmflimmern
'Circle (x, y), radius, 0,,, 1, F 'Ball an alter Position löschen
x += xs 'horizontale Position
y += ys 'vertikale Position
If x >= breite Or x <= 0 Then 'Rand rechts oder links berührt
xs = -xs 'dann horizontale Geschwindigkeit umkehren
farbe Shl= 1 'Farbe ändert sich nicht immer im gleichen Rhythmus
End If
If y >= hoehe Or y <= 0 Then ys = -ys 'Rand oben oder unten berührt
farbe += Rnd()*4 'Farbe ändern
Circle (x, y), radius, farbe,,, 1, F 'neuen Ball zeichnen
Screenunlock 'verhindert unschönes Bildschirmflimmern
If Inkey <> "" Then Exit Do 'Taste zum Abbruch betätigt
Sleep 20,1 ' senkt die Ballgeschwindigkeit
Loop
End
Daraus braucht man einmal den Teil der die nötigen Variablen dimensioniert und ihnen den Anfangswert zuweist.
Dim As Integer x=0, y=0, xs, ys, breite, hoehe, radius, farbe
Randomize Timer
Screeninfo breite, hoehe
xs = breite \100 'horizontale Geschwindigkeit
ys = hoehe \80 'vertikale Geschwindigkeit
radius = (Rnd(4) +xs +ys) \2
farbe = &H0ff000 'Ausgangsfarbe
Für die DO..LOOP Schleife brauchen wir den Teil, der zwischen 'Screenlock .. Screenunlock' steht.
Screenlock 'verhindert unschönes Bildschirmflimmern
x += xs 'horizontale Position
y += ys 'vertikale Position
If x >= breite Or x <= 0 Then 'Rand rechts oder links berührt
xs = -xs 'dann horizontale Geschwindigkeit umkehren
farbe Shl= 1 'Farbe ändert sich nicht immer im gleichen Rhythmus
End If
If y >= hoehe Or y <= 0 Then ys = -ys 'Rand oben oder unten berührt
farbe += Rnd()*4 'Farbe ändern
Circle (x, y), radius, farbe,,, 1, F 'Kreis ausgefüllt zeichnen
Screenunlock 'verhindert unschönes Bildschirmflimmern
Diese beiden Anweisungen verhindern ein Bildschirmflimmern indem Screenlock das Bild "einfriert" bis es fertig gezeichnet ist und Screenunlock das neue Bild frei gibt.
Dies wird an die Stellen eingefügt die im Listing des vorhergehenden Kapitels bezeichnet wurden.
Ich erspare mir noch einmal das Listing hier komplett anzugeben.
Hier habe ich einen Download für 2 Sreensaver (incl. Quellcode) eingestellt.
FBScreensaver
Viel Spaß damit ... Volta
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|