Box2D Binary Counter
Game Physics with a 2D Physics Engine
Loading...
Searching...
No Matches
CGame Class Reference

The game class.

#include <Game.h>

Inheritance diagram for CGame:
Collaboration diagram for CGame:

Public Member Functions

 ~CGame ()
 Destructor.
 
void Initialize ()
 Initialize the game.
 
void ProcessFrame ()
 Process an animation frame.
 
void Release ()
 Release the renderer.
 

Private Member Functions

void LoadSounds ()
 Load sounds.
 
void BeginGame ()
 Begin playing the game.
 
void KeyboardHandler ()
 The keyboard handler.
 
void RenderFrame ()
 Render an animation frame.
 
void BeginSpeaking ()
 Begin saying the current number in binary.
 
void ProcessSpeaking ()
 Process saying the current number in binary.
 
void ProcessState ()
 Process game state.
 

Private Attributes

CMyListener m_cContactListener
 Contact listener.
 
bool m_bSpeaking = false
 Is currently saying the current number.
 
bool m_bSpoken = true
 Has finished saying the current number.
 
float m_fSayBitTimer = 0
 Timer to delay saying the next bit.
 
int m_nCurBit = 0
 Index of the bit currently being said.
 

Additional Inherited Members

- Static Protected Attributes inherited from CCommon
static b2World * m_pPhysicsWorld = nullptr
 Pointer to Box2D Physics World.
 
static CRendererm_pRenderer = nullptr
 Pointer to the Renderer.
 
static CObjectManagerm_pObjectManager = nullptr
 Pointer to the Object Manager.
 
static Sage::CParticleEngine2D * m_pParticleEngine = nullptr
 Pointer to particle engine.
 
static eGameState m_eGameState = eGameState::Loading
 Current game state.
 
static CCounterm_pCounter = nullptr
 Pointer to a counter.
 
static UINT m_nCurNum = 0
 Current number.
 
static eDrawMode m_eDrawMode = eDrawMode::Sprites
 Draw mode.
 

Constructor & Destructor Documentation

◆ ~CGame()

CGame::~CGame ( )

Delete the Renderer and the Object Manager. Also delete Physics World, which MUST be deleted after the Object Manager because of way things are set up.

Member Function Documentation

◆ BeginGame()

void CGame::BeginGame ( )
private

Clear any old objects out of the Object Manager and create the edges of the game world, which correspond to the edges of the window.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BeginSpeaking()

void CGame::BeginSpeaking ( )
private

Begin the speaking process by setting the flag, setting the current bit to the most-significant one, and zeroing out the timer so that the first bit is said immediately.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Initialize()

void CGame::Initialize ( )

Initialize the Renderer and the Object Manager, load images and sounds, start the timer, and begin the game.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ KeyboardHandler()

void CGame::KeyboardHandler ( )
private

Poll the keyboard state and respond to the key presses that happened since the last frame.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadSounds()

void CGame::LoadSounds ( )
private

Load the sounds for this game.

Here is the caller graph for this function:

◆ ProcessFrame()

void CGame::ProcessFrame ( )

Handle keyboard input, move the game objects and render them in their new positions and orientations. Notify the timer of the start and end of the frame so that it can calculate frame time.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessSpeaking()

void CGame::ProcessSpeaking ( )
private

Do the processing and preparation necessary for saying the current number out loud in binary form. This function should be called once per frame.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessState()

void CGame::ProcessState ( )
private

Take action appropriate to the current game state.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Release()

void CGame::Release ( )

Release all of the DirectX12 objects by deleting the renderer.

Here is the caller graph for this function:

◆ RenderFrame()

void CGame::RenderFrame ( )
private

Ask the Object Manager to draw the game objects. RenderWorld is notified of the start and end of the frame so that it can let Direct3D do its pipelining jiggery-pokery.

Here is the call graph for this function:
Here is the caller graph for this function: