Slippers Engine
 
Loading...
Searching...
No Matches
Game Objects

Examples for Game Objects. More...

Classes

class  Alarmable
 Responsible for Alarm functions. More...
 
class  Collidable
 Responsible for Collision functions. More...
 
class  Drawable
 Responsible for 3D Draw functions. More...
 
class  Drawable2D
 Responsible for 2D Draw functions. More...
 
class  GameObject
 Responsible for GameObject centralization. More...
 
class  Inputable
 Responsible for Input functions. More...
 
class  Updatable
 Responsible for Update functions. More...
 

Detailed Description

Examples for Game Objects.

Game Objects execute in this order:
Input
Alarms
Update
Collision
Draw
Draw2D

This is the core of the engine. A GameObject is imperative for actions taken in the game world through Scenes. Every major system is inheritted within the GameObject.

A GameObject could look like:
DemoObj.h

#include "GameObject.h"
#include "AzulCore.h"
class DemoCollideObj;
class DemoObj : public GameObject {
public:
DemoObj();
DemoObj(const DemoObj&) = default;
DemoObj& operator=(const DemoObj&) = default;
~DemoObj();
void Collision(DemoCollideObj* obj);
private:
GraphicObject_TextureFlat* demoGraphicsObj;
Sprite* demoSprite;
virtual void Update();
virtual void Draw();
virtual void Draw2D();
virtual void SceneEntry();
virtual void SceneExit();
virtual void Alarm0();
virtual void Alarm1();
virtual void Alarm2();
virtual void KeyPress(AZUL_KEY k);
virtual void KeyRelease(AZUL_KEY k);
};
virtual void Alarm1()
Definition Alarmable.h:72
virtual void Alarm0()
Definition Alarmable.h:71
virtual void Alarm2()
Definition Alarmable.h:73
virtual void Draw2D()
Fill this with code that occurs during the Draw2D phase.
Definition Drawable2D.h:51
virtual void Draw()
Fill this with code that occurs during the Draw phase.
Definition Drawable.h:53
Responsible for GameObject centralization.
Definition GameObject.h:179
virtual void SceneExit()
Function called by SubmitExit() responsible for deregistration.
Definition GameObject.h:251
virtual void SceneEntry()
Function called by SubmitEntry() responsible for registration.
Definition GameObject.h:233
virtual void KeyPress(AZUL_KEY k)
Fill this with code that occurs on a key press.
Definition Inputable.h:69
virtual void KeyRelease(AZUL_KEY k)
Fill this with code that occurs on a key release.
Definition Inputable.h:94
Responsible for Sprite Creation and Positioning.
Definition Sprite.h:129
virtual void Update()
Fill this with code that occurs during the Update phase.
Definition Updatable.h:54

DemoObj.cpp

#include "DemoObj.h"
#include "ModelManager.h"
#include "ShaderManager.h"
#include "TextureManager.h"
#include "SceneManager.h"
#include "Scene.h"
DemoObj::DemoObj() {
demoGraphicsObj = new GraphicsObject_TextureFlat(ModelManager::GetModel("Demo Model"), ShaderManager::GetShader(ShaderManager::DefaultShaders::TEXTUREFLAT), TextureManager::GetTexture("Demo Texture"));
demoSprite = new Sprite("Demo Texture Two");
Collidable::SetColliderModel(demoGraphicsObj->getModel());
}
DemoObj::~DemoObj(){
delete demoGraphicsObj;
delete demoSprite;
}
void DemoObj::Update(){
//Do Update Stuff
}
void DemoObj::Draw(){
demoGraphicsObj->Render(SceneManager::GetCurrScene()->GetCurrCam());
}
void DemoObj::Draw2D(){
demoSprite->Render();
}
void DemoObj::SceneEntry(){
}
void DemoObj::SceneExit(){
}
void DemoObj::Alarm0(){
//Do Alarm Stuff
}
void DemoObj::Alarm1(){
//Do Alarm Stuff
}
void DemoObj::Alarm2(){
//Do Alarm Stuff
}
void DemoObj::KeyPress(AZUL_KEY k) {
switch (k) {
case AZUL_KEY::KEY_0:
//Do Key Press Stuff
break;
}
}
void DemoObj::KeyRelease(AZUL_KEY k) {
switch (k) {
case AZUL_KEY::KEY_9:
//Do Key Release Stuff
break;
}
}
void DemoObj::Collision(DemoCollideObj* obj){
//Do Collision Stuff
}
@ KEY_RELEASE
Definition KeyStateCommon.h:7
@ KEY_PRESS
Definition KeyStateCommon.h:6
void SubmitRegistration(float t, AlarmableManager::ALARM_ID id)
Called when wanting to start an alarm.
Definition Alarmable.cpp:101
@ ALARM_2
Definition AlarmableManager.h:15
@ ALARM_1
Definition AlarmableManager.h:15
@ ALARM_0
Definition AlarmableManager.h:15
void SubmitDeregistration()
Called when wanting to stop checking for collisions.
Definition Collidable.cpp:49
void SetColliderModel(Model *mod)
Stores an Objects Collision Model for calculating collisions.
Definition Collidable.cpp:61
void SetCollidableGroup()
Registers a DemoObject to be part of a Collision Group.
Definition Collidable.h:281
void SubmitRegistration()
Called when wanting to check for collisions.
Definition Collidable.cpp:41
void SubmitDeregistration()
Called when wanting to hide sprites on screen.
Definition Drawable2D.cpp:45
void SubmitRegistration()
Called when wanting to show sprites on screen.
Definition Drawable2D.cpp:37
void SubmitRegistration()
Called when wanting to show graphics objects on screen.
Definition Drawable.cpp:37
void SubmitDeregistration()
Called when wanting to hide graphics objects on screen.
Definition Drawable.cpp:45
void SubmitDeregistration(AZUL_KEY k, EVENT_TYPE e)
Called when wanting to stop checking for a specific key.
Definition Inputable.cpp:86
void SubmitRegistration(AZUL_KEY k, EVENT_TYPE e)
Called when wanting to check for a specific key.
Definition Inputable.cpp:49
static Model * GetModel(const MapKey &key)
Returns model pointer with given KEY.
Definition ModelManager.h:98
static Scene * GetCurrScene()
Returns pointer to current scene.
Definition SceneManager.h:51
static ShaderObject * GetShader(const MapKey &key)
Returns shader object pointer with given KEY.
Definition ShaderManager.h:71
@ TEXTUREFLAT
Definition ShaderManager.h:20
static Texture * GetTexture(const MapKey &key)
Returns texture pointer with given KEY.
Definition TextureManager.h:134
void SubmitRegistration()
Called when wanting to make changes every frame.
Definition Updatable.cpp:37
void SubmitDeregistration()
Called when wanting to stop making changes every frame.
Definition Updatable.cpp:45