Autor Thema: Überblend-Effekt  (Gelesen 2272 mal)

nakobi

  • Gast
Überblend-Effekt
« 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.)".

« Letzte Änderung: 11. Juli 2008, 22:03:21 von KhrisMUC »

fireorange

  • Ehrwürdiger Tentakel
  • ********
  • Beiträge: 3985
  • Geschlecht: Weiblich
    • Profil anzeigen
Re: Überblend Effekt
« Antwort #1 am: 11. Juli 2008, 20:04:55 »
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.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Überblend Effekt
« Antwort #2 am: 11. Juli 2008, 22:03:00 »
Genau, oder SetNextScreenTransition().
nakobi, Du suchst die Einstellung "crossfade".
Entweder im Editor festlegen, oder in game_start:
  SetScreenTransition(eTransitionCrossfade);

nakobi

  • Gast
Re: Überblend-Effekt
« Antwort #3 am: 12. Juli 2008, 00:10:03 »
Super, nur wie stell ich die geschwindkeit fest? Das Fading soll laaaaaaaaaangsaaaaaaaaaam sein :-)

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Überblend-Effekt
« Antwort #4 am: 12. Juli 2008, 08:16:33 »
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();

nakobi

  • Gast
Re: Überblend-Effekt
« Antwort #5 am: 12. Juli 2008, 14:25:42 »
vielen Dank! Ich brauch den Effekt nur bei einer entscheidenen Szene - danach soll das normale Fading funktionieren - insofern Danke!