Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Thema gestartet von: nakobi am 11. Juli 2008, 20:00:43
-
Ich habe schon einige Threads gefunden (inbesondere auf AT), aber leider nicht das was ich suche. Da ich es nicht Objekte suche sondern für Räume - die Rede ist von Überblendungen.
Ich will quasi einen Blendeffekt machen zwischen zwei Räumen (ähnlich MD-folge 12 mit den eingeblendeten "räumen (insel, tür etc.)".
-
Es gibt verschiedene vorgegebene Überblend-Effekte, die unter General Settings für das ganze Spiel eingestellt werden können (Room Transition Style).
Der Befehl "SetScreenTransition(X);" kann für einzelne Szenen genommen werden.
-
Genau, oder SetNextScreenTransition().
nakobi, Du suchst die Einstellung "crossfade".
Entweder im Editor festlegen, oder in game_start:
SetScreenTransition(eTransitionCrossfade);
-
Super, nur wie stell ich die geschwindkeit fest? Das Fading soll laaaaaaaaaangsaaaaaaaaaam sein :-)
-
Gar nicht. Wenn Du es wirklich langsam haben willst (warum auch immer, ist doch nervig), musst Du den Effekt manuell coden.
Beim verlassen des Raums einen screen shot in ein DynamicSprite packen, in before fadein das Sprite als Hintergrund eines bildschirmfüllenden GUIs setzen, in after fadein das GUI transparent werden lassen.
// global header
import function fade_in();
// global script
DynamicSprite bg;
function on_event (EventType event, int data) {
if (event == eEventLeaveRoom) {
bg = DynamicSprite.CreateFromScreenShot();
gFade.Transparency = 100;
gFade.BackgroundGraphic = bg.Graphic;
gFade.Visible = true;
}
if (event == eEventEnterRoomBeforeFadein) {
gFade.Transparency = 0;
}
}
function fade_in() {
int t = 0;
while(t<=100) {
gFade.Transparency = t;
t++;
Wait(1); // erhöhen, um es langsamer zu machen
}
}
// after fadein in jedem Raum
fade_in();
-
vielen Dank! Ich brauch den Effekt nur bei einer entscheidenen Szene - danach soll das normale Fading funktionieren - insofern Danke!