Making a shmup level
Patterns and rails (for illustration, watch this video : http://www.youtube.com/watch?v=effHsell8GU )
Patterns and rails are basically the same thing; the only difference is that a pattern is meant to be followed by a bullet while a rail is to be followed by an enemy. Aside from that, they are identical objects.
Properties :
- Arguments : an argument is a line with two float values. They have different consequences for each pattern type (detailed further down). There is a syntax to be respected : you should simply put a space between the two values, and for an argument to be taken into account, you MUST create a new line after it. Only one though, as if you make two or more, empty lines will be thought to be arguments and this will have unwanted repercussions.
- Types :
Simple shot : the most basic pattern; the bullet either goes up or down depending on the sign of its speed. (takes no argument)
Bézier : the bullet follows a curve defined by multiple inflexion points. The inflexion points are the arguments of the pattern and can be directly moved around using the mouse. (takes multiple arguments, each being the coordinates of an inflexion point)
Spiral : the bullet makes a spiraling motion around its starting point. (takes one argument : first value is angular speed while the second value is radial speed)
Fixed vector : basically the same as simple shot, except that instead of just going up or down, the bullet goes in the direction of the vector input as an argument. (takes one argument)
Spiral vector : instead of directly following a spiral, the bullet goes in the direction of a point of said spiral. Every successive bullet goes in the direction of a different point. (akes one argument : first value is angular speed while the second value is radial speed)
Bézier vector : instead of directly following a bézier curve, the bullet goes in the direction of a point of said curve. Every successive bullet goes in the direction of a different point. (takes multiple arguments, each being the coordinates of an inflexion point)
Player vector : the bullet goes in the direction of the player. (takes no argument) (note that it doesn't follow the player, it goes in the direction of the player relative to its own position at the moment it's created)
- Speed (float) : the bullet's speed
- Delay (integer, in frames) : time between the spawning of each successive bullet. (note that this value is here for testing purposes only and isn't carried on into the actual game; you'll have to set the delay values of emitters or enemies in the timeline instead)
- Next pattern (integer) : ID of the pattern that should follow the current one. Allows you to create composite patterns. If set to -1, then there will be no next pattern.
- Transition (float): time before the bullet should start following the next pattern. Useless if next pattern is set to -1. Value indication : for a bezier curve, 1.0 means the pattern will change as soon as the bullet reaches the last inflexion point.
- Max tick (integer) : only useful for types “Bezier vector” and “Spiral vector”. Number of bullets which should be shot to make a full “loop”.
- Number (integer) : number of bullets shot at once. Only useful for types “Bezier vector” and “Spiral vector”.
- Pause (float) : time the bullet should wait without moving after the first pattern and before the next pattern. Useless if next pattern is set to -1. Can be set to 0.
- Smooth : makes speed transition smooth for “Bezier” and “Spiral”.
Bullet types
Properties :
- Size X (integer) : width of the bullet.
- Size Y (integer) : height of the bullet.
- Texture (string) : name of the file of the texture.
Emitters
Properties :
- Bullet type (integer) : ID of the type of bullet which should be shot by the emitter.
- Period (integer, in frames) : time which should elapse between each shot fired.
- Patterns : patterns which should be followed by the bullets shot by the emitter.
Enemy types
Properties :
- Life (integer) : how much life the enemy should have.
- Model (string) : name of the file of the model.
- Texture (string) : name of the file of the texture.
- Emitters : emitters which the enemy should use.
Timeline (enemy spawning point)
Properties :
- Rail : rail which the enemy is to follow.
- Type : enemy type.
- Number (integer) : number of enemies that should be spawned.
- Delay (integer, in frames) : amount of time between each enemy-spawning.
- Life (integer, in frames) : how long the enemy should be drawn after it spawned. (note that this value is here for testing purposes only and isn't carried on into the actual game)
- X scale (float) : horizontal scale component for the rail (allows you to make it bigger, smaller and/or reverse it)
- Y scale (float) : vertical scale component for the rail (allows you to make it bigger, smaller and/or reverse it)