Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Newbies => Thema gestartet von: Kinkilla am 21. Mai 2016, 18:51:46
-
Hey Leute
Folgendes Problem: Ich versuche während einer Cutscene (Gui ist nicht sichtbar, Überspringen mit ESC) einen Raumübergang hinzuzufügen.Damit meine ich dass bei [ags]player.EnterRoom(ANGABEN);[/ags] der übergang nicht sofort geschehen soll, sondern einen art Fade In eingeblendet werden soll
LG Kinkilla
-
Es wäre jetzt gut zu wissen was genau du mit "Fade in" meinst.
Generell gibt es bei AGS 2 Möglichkeiten bzw. Zeitpunkte eine Funktion beim Raumwechsel aufzurufen.
Bei der ersten Möglichkeit wird die Funktion "room_Load" aufgerufen. Dazu musst du im AGS Editor unten rechts bei den Funktionen einen Doppelklick bei "Enters room before fade in" machen. AGS erstellt dann die "room_Load" Funktion im Skript und dort kannst du reinschreiben was passieren soll.
Hierbei ist zu beachten das die Funktion "room_Load" aufgerufen wird BEVOR der player im Raum sichtbar bzw. vorhanden ist.
Bei der zweiten Möglichkeit wird die Funktion "room_AfterFadeIn" aufgerufen. Dazu bei "Enters room after fade in" ein doppelklick machen und AGS erstellt die Funktion. In die Funktion wieder das reinschreiben was passieren soll.
Diese Funktion wird aufgerufen NACHDEM der player im Raum ist und damit auch sichtbar ist.
Der zeitliche Unterschied beträgt nur wenige Milisekunden, ist aber meist deutlich sichtbar.
Das funktioniert auch bei Cutscenen. Du kannst aber den player vor dem Raumwechsel auch unsichtbar machen und zum richtigen Zeitpunkt wieder sichtbar. Das kann manchmal einfacher sein, je nachdem was du vor hast. Eine weitere Möglichkeit wäre ein zusätzlicher Raum, in dem du etwas ablaufen lassen kannst.
Was in deinem Fall das Beste ist musst du aber selber Entscheiden da nur du den genauen Ablauf kennst. Ich hoffe etwas geholfen zu haben.
-
War ein bisschen ungenau geschildert :)
Bei "player.EnterRoom (RoomID,x,y,FaceDir);" erscheint der neue Raum Sofort
Ich möchte aber das der Bildschirm langsam schwarz ausgeblendet wird und dann wieder eingeblendet wird im neuen Raum
Genau so wie bei einen normalen Raumwechsel (Durch offene Tür)
Hoffe es war genauer :-X
-
Probier doch mal:
[ags]
...
FadeOut(1);
player.EnterRoom (RoomID,x,y,FaceDir);
[/ags]
und im neuen Raum dann:
[ags]
function room_AfterFadeIn()
{
FadeIn(1);
...
}
[/ags]
-
Super hat funktioniert
Danke ;D
-
Oder auch
[ags] SetNextScreenTransition(eTransitionFade);[/ags]