flimEngine
Tank Class Reference

#include <Tank.h>

Inheritance diagram for Tank:
Inheritance graph
Collaboration diagram for Tank:
Collaboration graph

Public Member Functions

 Tank ()
 
 Tank (const Tank &)
 
Tankoperator= (const Tank &)
 
 ~Tank ()
 
errcode Update () override
 Called every frame. More...
 
errcode Draw () override
 Draw callback to override. More...
 
errcode Draw2D () override
 
errcode SceneEntry () override
 Scene entry callback. More...
 
errcode SceneExit () override
 Scene exit callback. More...
 
errcode KeyPressed (AZUL_KEY key) override
 Key pressed callback. More...
 
void SetMap (Minimap *map)
 
Fired FiredBy ()
 
void Alarm0 () override
 Alarm 0 callback. More...
 
virtual errcode Collision (Enemy *)
 
virtual errcode Collision (Bullet *)
 
virtual errcode CollisionTerrain (const CollisionVolumeAABB &)
 Collision terrain. More...
 
void Initialize (int x, int y, int z)
 
- Public Member Functions inherited from GameObject
 GameObject ()
 
virtual ~GameObject ()
 
GameObjectoperator= (const GameObject &)=default
 
 GameObject (const GameObject &)=default
 
errcode SubmitEntry ()
 Submit entry to the scene. More...
 
errcode SubmitExit ()
 Submit exit to the scene. More...
 
- Public Member Functions inherited from Updatable
 Updatable ()
 
virtual ~Updatable ()
 
 Updatable (const Updatable &)=delete
 
const Updatableoperator= (const Updatable &)=delete
 
errcode SubmitUpdateRegistration ()
 Submit update registration. More...
 
errcode SubmitUpdateDeregistration ()
 Submit update deregistration. More...
 
- Public Member Functions inherited from Drawable
 Drawable ()
 
virtual ~Drawable ()
 
 Drawable (const Drawable &)=delete
 
const Drawableoperator= (const Drawable &)=delete
 
errcode SubmitDrawRegistration ()
 Submit draw registration. More...
 
errcode SubmitDrawDeregistration ()
 Submit draw deregistration. More...
 
std::list< Drawable * >::iterator GetDeletionIterator ()
 
errcode SetDeletionIterator (std::list< Drawable *>::iterator in)
 
- Public Member Functions inherited from Inputable
 Inputable ()
 
virtual ~Inputable ()
 
 Inputable (const Inputable &)=delete
 
const Inputableoperator= (const Inputable &)=delete
 
virtual errcode KeyReleased (AZUL_KEY key)
 Key released. More...
 
errcode SubmitInputRegistration (AZUL_KEY key, input_type type)
 Submit input registration. More...
 
errcode SubmitInputDeregistration (AZUL_KEY key, input_type type)
 Submit input deregistration. More...
 
std::list< Inputable * >::iterator GetDeletionIterator ()
 
errcode SetDeletionIterator (std::list< Inputable *>::iterator in)
 
- Public Member Functions inherited from Alarmable
 Alarmable ()
 
Alarmableoperator= (const Alarmable &)
 
virtual ~Alarmable ()
 
 Alarmable (const Alarmable &)
 
errcode SubmitAlarmDeregistration (AlarmableManager::ALARM_ID id)
 Submit alarm deregistration. More...
 
errcode SubmitAlarmRegistration (float t, AlarmableManager::ALARM_ID id)
 Submit alarm registration. More...
 
virtual void Alarm1 ()
 Alarm 1 callback. More...
 
virtual void Alarm2 ()
 Alarm 2 callback. More...
 
float TimeLeft (AlarmableManager::ALARM_ID id)
 Time left on one of the alarms. More...
 
errcode ChangeTime (float t, AlarmableManager::ALARM_ID id)
 Change time. More...
 
errcode AddTime (float t, AlarmableManager::ALARM_ID id)
 Adds a time to 'id'. More...
 
errcode SubtractTime (float t, AlarmableManager::ALARM_ID id)
 Subtract time. More...
 
bool IsRegistered (AlarmableManager::ALARM_ID id)
 Query if 'id' is registered. More...
 
errcode SetDeletionIter (int alarmNumber, std::multimap< float, AlarmableManager::AlarmEvent >::const_iterator iter)
 
std::multimap< float, AlarmableManager::AlarmEvent >::const_iterator GetDeletionIter (int alarmNumber)
 
errcode SetRegistrationState (int alarmNumber, RegistrationState state)
 
- Public Member Functions inherited from Collidable
 Collidable ()
 
virtual ~Collidable ()
 
 Collidable (const Collidable &)=delete
 
const Collidableoperator= (const Collidable &)=delete
 
virtual errcode Collision (Collidable *)
 Collision callback. More...
 
virtual errcode CollisionEnter (Collidable *)
 Collision enter. More...
 
virtual errcode CollisionExit ()
 Collision exit. More...
 
template<typename C >
errcode SubmitCollisionRegistration (C *c)
 Submit collision registration of your type. More...
 
template<typename C >
errcode SubmitCollisionDeregistration (C *c)
 Submit collision deregistration for your type. More...
 
const CollisionVolumeGetCollisionVolume () const
 
errcode SetColliderModel (Model *mod, VolumeType vol)
 Sets collider model. More...
 
errcode UpdateCollisionData (Matrix &mat)
 Updates the collision data described by matrix. More...
 
std::list< Collidable * >::iterator GetDeletionIter ()
 
errcode SetDeletionIter (std::list< Collidable *>::iterator in)
 
bool getColliding () const
 
void setColliding (bool coll)
 
const CollisionVolumeBSpheregetBSphere () const
 

Private Attributes

bool thirdPerson
 
Minimapminimap
 
GraphicsObject_TextureLight * tankGObj
 
GraphicsObject_TextureLight * turretGObj
 
flimSoundengineSnd
 
flimSoundshootSnd
 
bool canShoot
 
GraphicsObject_TextureLight * testPt
 
Matrix scale
 
Vect pos
 
Vect originalPos
 
Vect turretForward
 
Vect prevPos
 
Vect orientPos
 
Matrix rot
 
Matrix rotTurret
 
Quat rotQuat
 
float moveSpeed
 
const float maxMoveSpeed = 5.0f
 
const float acceleration = 1.5f
 
const float deceleration = 1.5f
 
float CamBack = 300.0f
 
Vect frontLeft
 
Vect frontRight
 
Vect backLeft
 
Vect backRight
 
const float rotSpeed = .03f
 
Vect firePos
 
Fired firedBy = Fired::ByPlayer
 
Vect CamPos
 
Matrix CamRot
 
Vect CamUp
 
Vect CamDir
 
float CamTranSpeed
 
float CamRotSpeed
 
int health
 
FlimSpritehealthBar
 

Additional Inherited Members

- Public Attributes inherited from Updatable
std::list< Updatable * >::iterator deleteIter
 

Constructor & Destructor Documentation

◆ Tank() [1/2]

Tank::Tank ( )

◆ Tank() [2/2]

Tank::Tank ( const Tank )

◆ ~Tank()

Tank::~Tank ( )

Member Function Documentation

◆ Alarm0()

void Tank::Alarm0 ( )
overridevirtual

Alarm 0 callback.

Author
Jack Campbell
Date
3/5/2017
Callback for alarms
{
DebugMsg::out("\n\nFIRST FRIGATE ALARMED\n\n");
}
{
DebugMsg::out("\n\nSECOND FRIGATE ALARMED\n\n");
}
{
DebugMsg::out("\n\nTHIRD FRIGATE ALARMED\n\n\n");
}

Reimplemented from Alarmable.

◆ Collision() [1/2]

errcode Tank::Collision ( Enemy other)
virtual

◆ Collision() [2/2]

errcode Tank::Collision ( Bullet other)
virtual

◆ CollisionTerrain()

errcode Tank::CollisionTerrain ( const CollisionVolumeAABB )
virtual

Collision terrain.

Author
Jack Campbell
Date
6/1/2017
Parameters
parameter1The first parameter.
Returns
An errcode.

Reimplemented from Collidable.

◆ Draw()

errcode Tank::Draw ( )
overridevirtual

Draw callback to override.

Author
Jack Campbell
Date
3/5/2017
This will be called once a frame and should only contain code related to rendering.
{
// Place rendering code here.
// Render ship's graphics object to the current main camera via the Scene
pGObj_SpaceFrigateLight->Render(&SceneManager::GetCurrentScene().GetCamera()->MainCamera());
}
Returns
An errcode.

Reimplemented from Drawable.

◆ Draw2D()

errcode Tank::Draw2D ( )
overridevirtual

Reimplemented from Drawable.

◆ FiredBy()

Fired Tank::FiredBy ( )
inline

◆ Initialize()

void Tank::Initialize ( int  x,
int  y,
int  z 
)

◆ KeyPressed()

errcode Tank::KeyPressed ( AZUL_KEY  key)
overridevirtual

Key pressed callback.

Author
Jack Campbell
Date
3/5/2017
Parameters
keyHook to check the key.
Place code in this callback if you are registered for a press
event.
{
if (key == AZUL_KEY::KEY_SPACE)
{
DebugMsg::out("pressed\n");
}
}
Returns
An errcode.

Reimplemented from Inputable.

◆ operator=()

Tank& Tank::operator= ( const Tank )

◆ SceneEntry()

errcode Tank::SceneEntry ( )
overridevirtual

Scene entry callback.

Author
Jack Campbell
Date
3/5/2017
This callback fires when a GameObject becomes active.
{
// Registration
// Setting graphics member variables
Matrix world;
ShipPos.set(0, 20, 0);
world = Matrix(TRANS, ShipPos);
pGObj_SpaceFrigateLight->SetWorld(world);
}
Returns
An errcode.

Reimplemented from GameObject.

◆ SceneExit()

errcode Tank::SceneExit ( )
overridevirtual

Scene exit callback.

Author
Jack Campbell
Date
3/5/2017
This callback is called when a GameObject is deactivated.
Returns
An errcode.

Reimplemented from GameObject.

◆ SetMap()

void Tank::SetMap ( Minimap map)

◆ Update()

errcode Tank::Update ( )
overridevirtual

Called every frame.

Author
Jack Campbell
Date
3/5/2017
Update is called once a frame on objects that have been registered to update.
{
// Place frame related content here. This code moves the ship's graphics object.
// Ship translation movement (not using time-based values for simplicity)
if (Keyboard::GetKeyState(AZUL_KEY::KEY_W))
{
ShipPos += Vect(0, 0, 1) * ShipRot * ShipTransSpeed;
}
else if (Keyboard::GetKeyState(AZUL_KEY::KEY_S))
{
ShipPos += Vect(0, 0, 1) * ShipRot * -ShipTransSpeed;
}
// Spaceship adjust matrix
Matrix world = ShipScale * ShipRot * Matrix(TRANS, ShipPos);
pGObj_SpaceFrigateLight->SetWorld(world);
}
Returns
An errcode.

Reimplemented from Updatable.

Member Data Documentation

◆ acceleration

const float Tank::acceleration = 1.5f
private

◆ backLeft

Vect Tank::backLeft
private

◆ backRight

Vect Tank::backRight
private

◆ CamBack

float Tank::CamBack = 300.0f
private

◆ CamDir

Vect Tank::CamDir
private

◆ CamPos

Vect Tank::CamPos
private

◆ CamRot

Matrix Tank::CamRot
private

◆ CamRotSpeed

float Tank::CamRotSpeed
private

◆ CamTranSpeed

float Tank::CamTranSpeed
private

◆ CamUp

Vect Tank::CamUp
private

◆ canShoot

bool Tank::canShoot
private

◆ deceleration

const float Tank::deceleration = 1.5f
private

◆ engineSnd

flimSound* Tank::engineSnd
private

◆ firedBy

Fired Tank::firedBy = Fired::ByPlayer
private

◆ firePos

Vect Tank::firePos
private

◆ frontLeft

Vect Tank::frontLeft
private

◆ frontRight

Vect Tank::frontRight
private

◆ health

int Tank::health
private

◆ healthBar

FlimSprite* Tank::healthBar
private

◆ maxMoveSpeed

const float Tank::maxMoveSpeed = 5.0f
private

◆ minimap

Minimap* Tank::minimap
private

◆ moveSpeed

float Tank::moveSpeed
private

◆ orientPos

Vect Tank::orientPos
private

◆ originalPos

Vect Tank::originalPos
private

◆ pos

Vect Tank::pos
private

◆ prevPos

Vect Tank::prevPos
private

◆ rot

Matrix Tank::rot
private

◆ rotQuat

Quat Tank::rotQuat
private

◆ rotSpeed

const float Tank::rotSpeed = .03f
private

◆ rotTurret

Matrix Tank::rotTurret
private

◆ scale

Matrix Tank::scale
private

◆ shootSnd

flimSound* Tank::shootSnd
private

◆ tankGObj

GraphicsObject_TextureLight* Tank::tankGObj
private

◆ testPt

GraphicsObject_TextureLight* Tank::testPt
private

◆ thirdPerson

bool Tank::thirdPerson
private

◆ turretForward

Vect Tank::turretForward
private

◆ turretGObj

GraphicsObject_TextureLight* Tank::turretGObj
private

The documentation for this class was generated from the following files: