Version 2 (modified by landauf, 17 years ago) (diff) |
---|
ObjectManager
Idea
The ObjectManager is the one place, where all the Entitites of the Game are stored. The ObjectManager has multiple lists for Environmentals, enemies, dead and living matter, friends, projectiles and so on.
With the ObjectManager Entities can be grouped, and as such be ticked, drawn and collided independently and much safer, as without it.
Interaction
The ObjectManager works closely together with WorldEntity?, as it is a storage container for them.
The ObjectManager has the following Lists, to store Entities:
OM_NULL | Not accessible (where they are created and deleted !! DO NOT USE THIS) |
OM_DEAD | Dead Entities, that might be revived |
OM_DEAD_TICK | Dead Entities, that must be ticked (e.g to respawn them for instance) |
OM_ENVIRON_NOTICK | Environment that is dead matter (ground house…) |
OM_ENVIRON | Environment that moved (water, trees, Particles…) |
OM_COMMON | Everything that is nowhere else, (collides with all groups) |
OM_GROUP_?? | Groups, for entitites |
OM_GROUP_??_PROJ | Projectiles of the above mentioned groups. |
To Put an entity into a corresponding group (and thus taking it out of its previous group) do a:
WorldEntity* entity = new DoomsDayDevice(); entity->toList(OM_GROUP_01_PROJ);