-
Notifications
You must be signed in to change notification settings - Fork 0
GameObject
GameObject
is an interface represents game object - abstract container with some scripts. Each game object uses single responsibility principle. For example GameObject called character should contains scripts for character creation and etc.
Basic implementation of GameObject
called BasicGameObject
where every object has it's own unique id.
//Create new game object
GameObject myObj = game.addGameObject();
//Get object id
Long myObjId = myObj.getId();
//Removes object from game and calls dispose() on it
game.removeGameObject(myObj);
Every script in each game object is unique. It means, that game object may have only one script instance of some type.
//Attach new script of type EchoSystem or get already attached script
EchoSystem echoSystem = myObj.getGameScript(EchoSystem.class);
GameItem gameItem = diContainer.getBean("simpleGameItem", GameItem.class);
//Attach new script of type GameItemSystem and use gameItem object in GameItemSystem class constructor
GameItemSystem itemSystem = myObj.getGameScript(GameItemSystem.class, gameItem);
//Check if script of given type is attached
boolean hasItemSystem = myObj.hasGameScript(GameItemSystem.class);
//Get all scripts attached to this object
Set<GameScript> allScripts = myObj.getGameScripts();
//Detaches script from game object
myObj.removeGameScript(GameItemSystem.class);
GameObject
has method called update
, which invokes update
on each GameScript
attached to this object. This method will be called automatically on each GameObject
after calling update
in Game
.
Every GameObject
has dispose()
method. It contains logic for game object disposing. In BasicGameObject
it removes all game scripts for given object. dispose()
will be called automatically on game.removeGameObject(object)
//Dispose object manually
myObj.dispose();
//Remove object from game and dispose() it
game.removeGameObject(myObj);