Classes - JayhawkZombie/EECS581Project GitHub Wiki

SFEngine Classes

The engine comes with a core set of classes, some of which are used internally and some of which you can derive from to help facilitate your game making.

Extendable Classes

These classes are meant to be derived from so that you can implement your own custom behavior. Examples will be documented.

BaseEngineInterface

In SFEngine > Source > Headers > Engine > BaseEngineInterface.h
This class is the lowest-level, most abstract interface to the engine. Everything the engine interfaces ultimately derives from this. See BaseEngineInterface

Engine

In SFEngine > Source > Headers > Engine > Engine.h
This is the core engine class, and you should not alter this unless you understand how it works. Nevertheless, it will be documented so extending it is easier. See Engine

UserEvent

In SFEngine > Source > Headers > Events > UserEvent.h
This is a wrapper for events coming in from SFML. It is wrapped in an attempt to pull away from SFML-specific implementations and maintain a common interface in the event that the SFML event interface changes in the future. See Reacting to User events

Exceptions

In SFEngine > Source > Headers > Exceptions > Exceptions.h
The engine's internal exception classes are defined here. Unless an exception is thrown by the standard library, all caution is taken to only throw exception wrapped using this class to provide detailed descriptions and exception traces. See Exceptions

LevelObject

In SFEngine > Source > Headers > Level > LevelObject.h
This is the class from which most interactive objects are derived. The containers in the Level class are polymorphic and store points to instances of LevelObject's. See LevelObject

Level

BasicLevel

In SFEngine > Source > Headers > Level > BasicLevel.h
This is the base level class from which custom levels are derived. See Level

Timed Sequences

In SFEngine > Source > Headers > Time > TimedSequence.h
This class allows the queuing up of time-based actions, which are particularly useful for cut-scenes. See Timed Sequences