Diashow beim Booten mit Plymouth
Bilderwechsel
Für Änderungen der Darstellung bietet Plymouth verschiedene CallBack-Funktionen an. So wird beispielsweise mit
Plymouth.SetBootProgressFunction(progress_callback);
immer bei Änderungen vom Boot-Fortschritt und bis zu 50 Mal die Sekunde die Funktion progress_callback
aufgerufen. Damit kann während des Bootvorgangs das Bild geändert werden:
fun progress_callback(zeit, fortschritt) { if (fortschritt * 6 > foto_nr) { foto_nr = foto_nr + 1; foto = Sprite(Image(foto_nr + ".png")); foto.SetX((Window.GetWidth() - foto.GetImage().GetWidth()) / 2); foto.SetY((Window.GetHeight() - foto.GetImage().GetHeight()) / 2); } } foto_nr = 0; foto = Sprite(); Plymouth.SetBootProgressFunction(progress_callback);
Die Funktion progress_callback
hat zwei Argumente. zeit
ist die
abgelaufene Zeit in Sekunden, fortschritt
ist ein Wert zwischen 0 und 1, der
angibt, wie weit der Bootvorgang abgeschlossen ist.
In dem Skript werden nacheinander die Fotos 1.png
, 2.png
bis 6.png
angezeigt, jeweils nach einem Sechstel des abgelaufenen Bootprozesses. Zum einfacheren Testen ist die Ausgabe des Fortschritts hilfreich. Diese kann in der Funktion progress_callback
erfolgen:
global.modus = Sprite(Image.Text(Plymouth.GetMode() + " " + Math.Int(fortschritt * 100) + " %", 1, 0, 0));
Ist beim Testen der Fortschritt zu langsam, kann er mit
fortschritt *= 10;
am Anfang der Funktion progress_callback
um den Faktor 10 beschleunigt werden. Dies sollte für den produktiven Einsatz auskommentiert werden. Hierfür einfach eine Raute (#
) voranstellen.