Small Logo

Slow Glass Animation System

Format

New lines are significant, each item must be on a separate line but initial whitespace is ignored.

Lines starting with a # are ignored, as is all content from // to the end of the line and any content between /* and */.

Directives

Triggers

Commands

In most cases unnecessary words can be omitted, the minimum phrasing is shown in bold

System Commands

Resource Management

Scene Management

Sprite Management

Sprite Placement

Animated Sprite Management (all TBD except where noted)

window {sprite-name} at {ix},{iy},{iw},{ih} - define a window on the source image centered at ix,iy of size iw,ih zoom window {sprite-name} to {iw},{ih} [in {duration}]- set new window size on source image move window of {sprite-name} to {ix},{iy} [in {duration}]- set new window centre on source image scroll window of {sprite-name} up|down|left|right [at {speed}] - move window centre continuously at speed pixels per minute scroll {sprite-name} [at] {x} {y} - move window continuously at x / y pixels per minute DONE set animation rate of {sprite-name} to {value} - if image is sprite, update the frame every {value} seconds advance {sprite-name} to {number} - switch sprite to the given frame (set rate to zero to use) advance/reverse {sprite-name} by {number} - advance or reverse sprite by the given number of frames

(Movie image sources can only advance)

Sprite Movement

Sprite Sizing

Sprite Appearance

Sprite Effects

Text Commands

Once created a text item is like a sprite and must be placed to become visible. Colour, font and other aspects of appearance can be changed after the text item has been created.

Graphic Commands

The word ‘shape’ can be used instead of ‘graphic’. Unlike text items you must set the appearance first, then created the graphic, to change the colour you must create a new graphic. Once created a text item is like a sprite and must be placed to become visible.

Sounds

Group Management

If you do not provide a group size it will be notionally the same size as the display. The named group can now be used as an image source for sprites, e.g. “place named-group at x,y,z” and all sprite commands operate on the whole group, however individual sprites within the group can still be operated on by name.

Flow Control

Logical Expressions

Mathematical Expressions

Anything in round brackets is assumed to be a mathemtical expression and on use will be replaced by its evaluated result. _Before- evaluation all variables will be expanded to their values.

All the standard operator symbols are supported, including ! and ^ for factorial and power. Brackets can be nested to any depth. ‘Pi’ and ‘e’ are replace by their respective values. The following functions are supported:

Variable Creation

All variables start with $. Unset variables evaluate to “NONE”.

Variables are local to scenes, to access variables in other scenes use ${scene-name:variable-name}.

Variables in commands are evaluated every time the command is invoked, variables in triggers are expanded when the trigger is tested. Variables can NOT be used in directives

Built-in Variables

Sprite properties

Some sprite properties are available as variables, using the sprite tag as the variable name, followed by a ‘.’ and one of the following: