Ergebnis 1 bis 10 von 10

Thema: Fließender Übergang

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Hi,

    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?

    Kann jemand helfen?

    Danke vielmals.

  2. #2
    Zitat Zitat von salamimild Beitrag anzeigen
    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:
    PHP-Code:
    # Make command window
        
    s1 "Neues Spiel"
        
    s2 "Fortsetzen"
        
    s3 "Beenden"
        
    @command_window Window_Command.new(192, [s1s2s3])
        @
    command_window.back_opacity 160
        
    @command_window.320 - @command_window.width 2
        
    @command_window.288 
    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:
    PHP-Code:
        Graphics.transition()
        
    Graphics.freeze
        Graphics
    .transition(50)
        
    # Make command window 
    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:
    PHP-Code:
    $game_system.bgm_play($data_system.title_bgm
    Diese spielt die BGM ab, schneide sie aus und füge sie hier ein:
    PHP-Code:
        Graphics.transition()
        
    # Play title BGM
        
    $game_system.bgm_play($data_system.title_bgm)
        
    Graphics.freeze
        Graphics
    .transition(50)
        
    # Make command window 
    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:
    PHP-Code:
        Graphics.transition()
        
    # Play title BGM
        
    $game_system.bgm_play($data_system.title_bgm)
        
    Graphics.freeze
        Graphics
    .transition(50)
        
    Graphics.freeze
        
    # Make command window 
    Und ein stückchen weiter unten, anchdem das Auswahlfenster erstellt (aber noch nciht angezeigt) wurde, so (ca. Zeile 69) :
    PHP-Code:
    # Execute transition
        
    Graphics.transition(50
    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:

    Geändert von XGazudin (17.04.2010 um 18:03 Uhr)

  3. #3
    @XGazudin

    Yeah. Das läuft einwandfrei und ist genau das, was ich wollte. Sogar mit dem Einblenden des Fenster.
    Coole Sau

    Danke vielmals!!!!

  4. #4
    Es funktioniert zwar, ist aber wenig elegant, wie ich es mir schon gedacht habe.
    Ich habe mal Cepanks methode probiert und es funktioniert auch:
    Zitat Zitat von Cepanks Beitrag anzeigen
    Wenn der Titelbildschirm nicht animiert ist, reicht dafür eigentlich ein
    Code (ruby):
    ZEIT_IN_FRAMES.times do
      Graphics.update
    end
    in der Scene_Title, bevor das Auswahlfenster erstellt/angezeigt wird.
    Anstatt ZEIT_IN_FRAMES musst du an dieser stelle halt eben eine Zahl angeben, also für 3 Sekunden = 3*40 = 120
    Das könnte dann so aussehen:
    PHP-Code:
        Graphics.transition()
        
    # Play title BGM
        
    $game_system.bgm_play($data_system.title_bgm)
        
    120.times do
          
    Graphics.update
        end
        
    # Make command window 
    Selbes ergebnis, weniger umständlich (wie ich finde...).
    Wollts hier nur nochmal erwähnt haben dass Cepanks Methode auch funktioniert.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •