Skip to content

Transitions ​

Transitions can be used to animate the change between two screens when using the set_screen command

Usage Example ​

narrat
transitions_test:
  set_screen default
  "normal set screen"
  set_screen map
  "set screen with fade"
  set_screen default 0 fade // fade is the name of the transition to use
  "set screen with duration"
  set_screen map 0 fade 2000 // Make transition last 2 seconds
  "set screen with duration and delay"
  set_screen default 0 fade 2000 4000 // Make transition last 2 seconds and have the new screen be delayed by 4 seconds

TIP

Note: Specifying the layer is necessary when using transitions.

Available transitions ​

Currently, there are two transitions available:

fade ​

Fade transition

slide-right ​

Slide-right transition

Creating custom transitions ​

It is possible to define custom transitions by creating css classes for them. For example, here are the CSS classes for the current transitions:

Fade transition

css
.narrat-transition-fade-enter-active,
.narrat-transition-fade-leave-active {
  transition-property: opacity;
  transition-timing-function: ease;
  transition-duration: 0.3s;
}

.narrat-transition-fade-enter-from,
.narrat-transition-fade-leave-to {
  opacity: 0;
}

Slide-right transition

css
.narrat-transition-slide-right-enter-active,
.narrat-transition-slide-right-leave-active {
  transition-property: transform;
  transition-timing-function: ease;
  transition-duration: 0.3s;
}

.narrat-transition-slide-right-enter-from {
  transform: translateX(-100%);
}
.narrat-transition-slide-right-leave-to {
  transform: translateX(100%);
}

New transitions can be created by copying those CSS classes (and changing the name like fade or slide-right in them) and adding them to the game's CSS, editing the values to whatever is desired.

Default transition durations config ​

Transitions can also have an optional config to change their default duration and delay. In config.yaml, for example:

yaml
transitions:
  slide-right:
    duration: 100
    delay: 5000

If no config is provided, the default duration is 0.5s, and the default delay is 0 (the old and new screens effectively transition at the same time).

The order of priority for choosing the duration or delay is: what's passed in the script --> If none, use the default for that command provided in the config --> if none, use the global default

Released under the MIT License.