Adventure Game Studio

AGS Support => Beginners' Technical Questions => Topic started by: PsychicHeart on Mon 15/08/2005 08:48:15

Title: Seamless room transition (or, change black load screen)
Post by: PsychicHeart on Mon 15/08/2005 08:48:15
hey guys,
i was wondering:
1. Can i make the room change (room A to room B) seamless? What i mean is, without that black screen that comes between two rooms? Or, if this is not possible...
2. Can i make that black loading screen customized, for example, can i change it with a room that says 'Loading' or something like that?

Thanks in Advance,
Blake.
Title: Re: Seamless room transition (or, change black load screen)
Post by: Ashen on Mon 15/08/2005 10:52:37
1. Read the manual. The 'Room transition style' box on the 'General settings' window lets you change that, and the SetScreenTransition() function lets you change it in-game. You may need to experiment a little to find the transition you prefer.

2. (Pointless, since I answered 1, but ...) Not directly, but you could use the 'Cross fade' transition, and create a function that takes you to a room with the custom 'Loading' image as a background, and then on to the new room.

function BlakesNewRoom (int room, int x, int y) {
  SetScreenTransition(TRANSITION_CROSSFADE); // Not really needed, as you could set it in the menu.
  NewRoom(LOADROOM); // Replace with number, obviously. LOADROOM should have 'Hide player' box checked.
  Wait(10);
  NewRoomEx(room, x, y);
}


Also, the SetFadeColor(r,g,b) function lets you change the colour of the fade (i.e. black, by default), for a little customisation.
Title: Re: Seamless room transition (or, change black load screen)
Post by: strazer on Tue 16/08/2005 00:50:34
2.) I don't think Ashen's solution will work as NewRoom/player.ChangeRoom commands are not executed immediately but when the current script ends.
Better do something like this:


// global script

//...

int next_room, next_x, next_y;

function BlakesNewRoom (int room_number, int x, int y) {
  next_room = room_number;
  next_x = x;
  next_y = y;
  NewRoom(LOADROOM);
}

//...



  // script for LOADROOM: Player enters screen (after fadein)

  Wait(10);
  NewRoomEx(next_room, next_x, next_y);