Hier ist eine kleine Überarbeitung des Codes, kopiere einfach diesen Code und tausche den vorherigen komplett mit diesem aus.
Und so funktioniert das Fading.
Über folgende Funktion aktivierst du das Fading eines Textes:
set_fading(frames, fade_out)]
Diese Funktion nimmt 2 Parameter. Zum einen einen Integer (Ganze Zahl) welche angibt über wie viele Frames der Fading-Vorgang laufen soll, zum anderen einen Boolean (Wahrheitswert) welcher den Fading-Modus angibt. Hierbei steht "true" für "Fade-Out" und "false" für "Fade-In".
Damit das Fading jedoch auch funktionieren kann muss periodisch die Funktion:
update_fading
für den Text aufgerufen werden.
Die einfachste Methode wäre wohl einfach ein Common_Event als Parallel_Process laufen zu lassen welches folgende Zeile Code jedes Frame ausführt:
$t.update_fading
wobei $t eine Variable ist welche auf unseren Text verweist.
Als Beispiel:
Innerhalb eines Events erstellst du den Text:
$t = Floating_Text.new(320, 240)
Dieser Text würde nun $t heißen (das "$" ist wichtig, in Ruby gibt es an, dass es sich hierbei um eine globale Variable handelt!) und sich an der Position x=320, y=240 befinden.
Danach folgt:
$t.text_string("Hallo Welt")
Diese Zeile würde den Text "Hallo Welt" schreiben lassen.
Als nächstes das Fading:
$t.set_fading(100, true)
Damit sagen wir, dass unser Text einen Fade-Out über 100 Frames machen soll.
Als Merksatz gilt 1.0 Sekunden ist ungefähr 40 Frames, je nach Framerate und Performance des Rechners.
Dann brauchen wir nurnoch ein Common_Event oder normales Event als Parallel_Process welches diese Zeile:
$t.update_fading
aufruft.
Nun haben wir einen Text der einen Fade-Out über 100 Frames vollführt.
Nun zum Fade-In.
Dieser funktioniert im Grunde genauso, allerdings muss der Text ersteinmal eine Opacity besitzen welche ungleich 255 ist damit ein Effekt stattfindet.
Das heißt wir können entweder einen Text welcher vorher einen Fade-Out durchgeführt hatte wieder durch einen Fade-In einblenden, oder wir können einem Text direkt eine gewisse Opacity zuordnen und danach ein Fade-In durchführen.
Um die Opacity manuell zu setzen brauchst du nichts weiter tun als folgende Zeile Custom_Script in ein Event ein zu führen:
$t.opacity = 0
Damit würde der Text $t komplett unsichtbar werden.
(Die Opacity eines Sprites bewegt sich im Bereich von 0 (unsichtbar) bis 255 (vollkommen sichtbar). )
Die eingebaute Fading-Funktion macht im Grunde nichts anderes als die Opacity des Textes zu ändern.
Ich hoffe dies sollte geklärt sein, falls immernoch Fragen bestehen zögere nicht sie zu stellen.
Cornix.