Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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