Version 9 (modified by smerkli, 14 years ago) (diff) |
---|
Space Boundaries
Concept
See ticket: Space Boundaries
Implementation
A new class that is derived from static entity will be written that checks for any other entities that are in danger of getting out of range of the center of the map. It will be called SpaceBoundaries.
A map creator can then add the boundaries to a level via its XML file and specify the attributes necessary for it to work.
The SpaceBoundaries object will do its work in the tick function, using an Iterator of type MobileEntity. Via the interface of MobileEntity, we can then control the pawns away from the boundary or do damage to them.
Goals of the implementation:
- Detection of pawns exiting the allowed range
- Reaction to those pawns
- Preliminary distance measurement: 2-norm
- (Later: maybe max-norm or 1-norm)
- Graphical representation of boundaries
Attributes
These attributes can be set for a SpaceBoundaries static entity in the XML file:
- position - absolute position of the space boundaries in the level (usually 0,0,0)
- maxdistance - maximum distance pawns can move away from this point
- warndistance - distance at which pawns receive some kind of warning that they're about to reach
Actions taken when a pawn reaches the boundary
Several measures can be taken when something reaches the boundaries of the level:
- Damage - the entity could take constant damage over time as long as it is outside the borders
- Acceleration changes - some kind of invisible wall or acceleration away from the boundary
- Visual impairment - darkness, fuzziness or something along those lines