Ich möchte in meinem projekt einen halbwegs fließenden übergang vom titelbild auf die erste map machen.
Im Scene_title/def command_new_game habe ich
in
umgeändert.
ich würde jetzt gerne einen fließenden übergang erstellen, also das der ganze bildschirm sich langsam verdunkelt, bzw. fließend zur ersten map übergeht. alle meine versuche mit [opacity -= 1] haben bisher nix gebracht. es würde schon reichen, wenn es sich nur verdunkelt, weil die erste map sowieso schwarz ist. kann mir irgendjemand erklären wie ich das hinkriege?
Mit Graphics.freeze frierst du den Bildschirm ein. Danach werden keine Veränderungen mehr angezeigt.
Mit Graphics.transition wird der aktualisierte Bildschirm über den eingefrorenen drübergeblendet. Dies sollte dann den fließenden Übergang ergeben, den du suchst. Als optionale Parameter kannst du die Dauer des Übergangs, sowie den Dateinamen eines Transitionbildes angeben.
Eigentlich sollte das aber schon standardmäßig gemacht werden, wenn man vom Titelbildschirm zur Map wechselt.
Habe auch ne Frage bezüglich dem Titlescreen. Dachte ich nehme diesen thread, da er passend zum Thema ist =)
Ich möchte nämlich, dass der Titelbildschirm gezeigt wird, aber ohne das Auswahlfenster gleich am Anfang.
Erst ca. 3. Sekunden später sollte das Fenster gezeigt werden.
Ich denk, ich muss einen wait Befehl einfügen. Nur wo?
Ich möchte nämlich, dass der Titelbildschirm gezeigt wird, aber ohne das Auswahlfenster gleich am Anfang.
Erst ca. 3. Sekunden später sollte das Fenster gezeigt werden.
Ich denk, ich muss einen wait Befehl einfügen. Nur wo?
Kann jemand helfen?
Danke vielmals.
...
So, da ich Neuling bin was RGSS angeht musste ich ne weile mit freeze und transition rumspielen, aber folgendermaßen kannst du damit den gewünschten Effekt erzielen (Ich beziehe mich auf ein noch nicht verändertes Script was Zeilenangaben betrifft):
Gehe im Ruby-Editor im RMXP in die Scene_Title
Und gehe dort zu Zeile 36, du solltest dort folgenden Code vorfinden:
Das ist der Punkt an dem das Auswahlfenster erzeugt wird (Darunter befinden sich noch einige Abfragen die ermitteln ob bereits ein Spielstand vorhanden ist und somit Continue, bzw Fortsetzen auswählbar ist), die Warte funktion sollte also davor stattfinden, füge also über "#Make Command Window" folgendes ein:
Das erste Graphics.transition() sorgt dafür, dass die Hintergrundgrafik schon vor dem Fenster eingeblendet wird.
Graphics.freeze sorgt dafür dass der aktuelle Bildschirm eingefroren wird.
Graphics.transition(50) habe ich dann lediglich als eine art "Pseudo"-Waitfunktion genutzt, da ich noch keinen explitizen Wait-Befehl für Ruby kenne. Mit der Zahl in Klammern kannst du die Wartezeit bis das Fenster dann schließlich geladen wird, anpassen.
Sicherlich gibts wohl elegantere Methoden, aber es hat den gewünschten Effekt, das Auswahlfenster wird erst später eingeblendet, dir wird allerdings auffallen, dass auch die Hintergrundmusik erst mit dem Auswahlfenster eingeblendet wird, wenn du die BGM aber schon vorher abspielen möchtest musst du nur eine Zeile ausschneiden und woanders einfügen.
Gehe zu Zeile ( jetzt: ) 65:
Diese spielt die BGM ab, schneide sie aus und füge sie hier ein:
Somit wird die BGM direkt nach einblenden des Hintergrundbilds abgespielt.
Eine weitere Anmerkung, du kannst auch, anstatt dass das Auswahlfenster einfach nur sofort eingeblendet wird, natürlich auch da einen weichen Übergang erzeugen.
Dazu füge einfach hinter Graphics.transition(50) noch eine Graphics.freeze ein, und füge nachdem die Textbox erstellt wurde eine neue Graphics.transition(x) ein (wobei x für einen beliebigen Wert steht und die Übergangsdauer beeinflusst)
Das sieht dann hier jetzt so aus:
Und ein stückchen weiter unten, anchdem das Auswahlfenster erstellt (aber noch nciht angezeigt) wurde, so (ca. Zeile 69) :
Alles natürlich direkt getestet und es klappt.
Bei der Gelegenheit möchte ich mich für die Idee bedanken, wäre auf so ein, naja nennen wir es mal Feature, gar nicht gekommen und werde es wahrscheinlich in für meine Zwecke angepasster Form selbst verwenden
Hier nochmal der Code wie er bei mir nun steht im ganzen:
ansonston könntest du auch ein Fenster außerhalb des Bildschrims anzeigen lassen und dann in Main es so lange verschieben lassen, bis es zB. 800 hat.
also:
def main
windowhmhmhm.x = 640
end
def update
if windowhmhmhm.x < 800
windowhmhmhm.x += 5 # Wert kannst du anpassen
end
end
Ob der Code funzt, kA, kannst du selber probieren. Du musst allerdings erstmal ein Fenster erstellen. Schau dir aber dazu einfach, wie die anderen Fenster erstellt werden. Rein Theroretisch sollte es klappen, egal, ob du den animierten hast oder net.