Links
Comment on page

Show Background

Show a background without removing any game elements.

Description

'show background <resource> [with [animations] [classes] [properties]]'
The show background action will change the background without removing any game elements (as opposed to the scene action).
This action uses the assets from the scene action so they still need to be declared as scene assets.
Action ID: Show::Background
Reversible: Yes
Requires User Interaction: No

Parameters

Name
Type
Description
resource
string
The resource to use as the background. This resource may be one of the following:
  • Asset ID: The ID of a scene asset previously defined.
  • CSS Property: Any valid non-spaced value for the background CSS property.
animations
string
Optional. A list of comma separated animation names with which the background will be shown.
classes
string
Optional. A list of comma separated CSS class names that will be added to the background element. You can create custom classes on your CSS and add them to your background dynamically using this list.
properties
string
Optional. A list of comma separated properties with their respective value.

Properties

The following is a comprehensive list of the properties available for you to modify certain behaviors of the background action.
Property Name
Type
Description
duration
string
The duration for the animations used. The value for this property must be a non-spaced valid value for the animation-duration CSS property.

Examples

Using an image as the background

If you want to use an image for the background, remember you first have to declare your image assets and place all your files under the assets/scenes/ directory.
Script
Scenes Assets
Monogatari.script ({
'Start': [
'show background mountain'
'end'
]
});
Monogatari.assets ('scenes', {
'mountain': 'mountain.png',
'sea': 'sea.png'
});

Using CSS properties as the background

If you'll use CSS to set a custom background, you can use any valid non-spaced value for the background-image or background-color CSS properties. Using CSS is perfect for when you want your background to be a solid color. Here are some valid statements:
Monogatari.script ({
'Start': [
'show background #fff'
'show background rgb(0, 0, 0)'
'show background url("assets/scenes/mountain.png")'
'end'
]
});
You can also use CSS gradients for backgrounds.
Monogatari.script ({
'Start': [
"We're about to show a linear gradient.",
"show background linear-gradient(to right, red, yellow)",
"Isn't that lovely?",
"end"
]
});

Using Animations

Monogatari comes with some built-in animations ready for you to use, you can see the list of animations and visualize them here. Using animations is as simple as indicating their name!
Script
Scenes Assets
Monogatari.script ({
'Start': [
'show background sea with fadeIn'
'end'
]
});
Monogatari.assets ('scenes', {
'mountain': 'mountain.png',
'sea': 'sea.png'
});

Modifying an animation duration

The following will set the background to a solid color using a CSS value and modify the duration of the fadeIn animation to 20 seconds.
Monogatari.script ({
'Start': [
'show background #424242 with fadeIn duration 20s'
'end'
]
});

Creating a custom animation

You can also use CSS to create your own animations, you'll have to apply them to a CSS class and then use the show background statement as follows:
For example, note the following CSS code creating a simple Ken Burn Animation:
Script
Scenes Assets
CSS
Monogatari.script ({
'Start': [
'show background mountain with ken-burn'
'end'
]
});
Monogatari.assets ('scenes', {
'mountain': 'mountain.png',
'sea': 'sea.png'
});
.ken-burn {
animation-name: ken-burns; /* Name of the animation to use */
animation-duration: 30s;
animation-iteration-count: infinite; /* 1 if it should only move once */
animation-timing-function: ease;
animation-fill-mode: forwards;
animation-delay: 0s;
-moz-transition: ease 1s all;
-o-transition: ease 1s all;
-webkit-transition: ease 1s all;
transition: ease 1s all;
}
@keyframes ken-burns {
0% {
transform: translateX(0);
}
50% {
transform: translateX(-500px);
}
100% {
transform: translateX(0px);
}
}