Engine - Polkm105/DesignPatternPractice GitHub Wiki
PARTIAL
Here you'll find the documentation for all of the Engine functions.
Table of Contents
- CP_Engine_Run
- CP_Engine_Terminate
- CP_Engine_SetNextGameState
- CP_Engine_SetNextGameStateForced
- CP_Engine_SetPreUpdateFunction NEW
- CP_Engine_SetPostUpdateFunction NEW
CP_Engine_Run()
This function is what starts the CProcessing engine. Before calling CP_Engine_Run(), CP_Engine_SetNextGameState or CP_Engine_SetNextGameStateForced must be called to set the initial state of the program. Failing to do so will cause the program to end immediately.
Function
void CP_Engine_Run();
Parameters
This function has no parameters.
Return
This function does not return anything.
Example
void init(void)
{
/* Set the size of the window */
CP_System_Size(500, 500);
}
void update(void)
{
/* Set the background color to black every frame */
CP_Graphics_ClearBackground(CP_Color_Create(0, 0, 0, 255));
/* Draw a rectangle at the mouse position */
CP_Graphics_DrawRect(CP_Input_GetMouseX(), CP_Input_GetMouseY(), 50, 50);
}
int main(void)
{
// Set the initial game state
CP_Engine_SetNextGameState(init, update, NULL);
// Run the program
CP_Engine_Run();
}
Related
- CP_System_Size
- CP_Graphics_ClearBackground
- CP_Color_Create
- CP_Graphics_DrawRect
- CP_Input_GetMouseX
- CP_Input_GetMouseY
CP_Engine_Terminate()
This will end the program after completing the current frame.
Function
void CP_Engine_Terminate();
Parameters
This function has no parameters.
Return
This function does not return anything.
Example
// Horizontal position of the square
float x_pos;
void init()
{
// Start the square at the left of the screen
x_pos = 0;
// Set the square to draw yellow
CP_Settings_Fill(CP_Color_Create(255, 255, 0, 255));
}
void update()
{
// Set background to black
CP_Graphics_ClearBackground(CP_Color_Create(0, 0, 0, 255));
// Draw the square
CP_Graphics_DrawRect(x_pos, (float)CP_System_GetWindowHeight()/ 2.0f, 100, 100);
x_pos += 2;
// If space pressed, reset the state
if (CP_Input_KeyTriggered(KEY_SPACE))
{
CP_Engine_SetNextGameStateForced(init, update, NULL);
}
// If escape is pressed, end the program
if (CP_Input_KeyTriggered(KEY_ESCAPE))
{
CP_Engine_Terminate();
}
}
int main(void)
{
// Set the initial game state
CP_Engine_SetNextGameState(init, update, NULL);
// Run the program
CP_Engine_Run();
}
Related
- CP_Graphics_ClearBackground
- CP_Settings_Fill
- CP_Color_Create
- CP_Graphics_DrawRect
- CP_Input_KeyTriggered
- CP_System_GetWindowHeight
CP_Engine_SetNextGameState()
This sets the next state for the program to enter. This will call the shutdown function of the current state if own exists. Calling CP_Engine_SetNextGameState() on the same state you are currently in will have no effect, but calling CP_Engine_SetNextGameStateForced will restart the current state.
Function
void CP_Engine_SetNextGameState(FunctionPtr init, FunctionPtr update, FunctionPtr shutdown);
Parameters
- init - (FunctionPtr) The name of the function called once when the state first begins. This can be NULL if no initialization is needed for your state.
- update - (FunctionPtr) The name of the function called every frame to update the state.
- shutdown - (FunctionPtr) The name of the function called when you leave a state. This occurs when you call CP_Engine_SetNextGameState or CP_Engine_SetNextGameStateForced to change states. This can be NULL if no cleanup is needed for your state.
Return
This function does not return anything.
Example
void init(void)
{
/* Set the size of the window */
CP_System_Size(500, 500);
}
void update(void)
{
/* Set the background color to black every frame */
CP_Graphics_ClearBackground(CP_Color_Create(0, 0, 0, 255));
/* Draw a rectangle at the mouse position */
CP_Graphics_DrawRect(CP_Input_GetMouseX(), CP_Input_GetMouseY(), 50, 50);
}
int main(void)
{
// Set the initial game state
CP_Engine_SetNextGameState(init, update, NULL);
// Run the program
CP_Engine_Run();
}
Related
CP_Engine_SetNextGameStateForced()
This sets the next state for the program to enter. This will call the shutdown function of the current state if own exists. Calling CP_Engine_SetNextGameStateForced() allows you to reset your current game state, while CP_Engine_SetNextGameStateForced with the current game state will not.
Function
void CP_Engine_SetNextGameStateForced(FunctionPtr init, FunctionPtr update, FunctionPtr shutdown);
Parameters
- init - (FunctionPtr) The name of the function called once when the state first begins. This can be NULL if no initialization is needed for your state.
- update - (FunctionPtr) The name of the function called every frame to update the state.
- shutdown - (FunctionPtr) The name of the function called when you leave a state. This occurs when you call CP_Engine_SetNextGameState or CP_Engine_SetNextGameStateForced() to change states. This can be NULL if no cleanup is needed for your state.
Return
This function does not return anything.
Example
// Horizontal position of the square
float x_pos;
void init()
{
// Start the square at the left of the screen
x_pos = 0;
// Set the square to draw yellow
CP_Settings_Fill(CP_Color_Create(255, 255, 0, 255));
}
void update()
{
// Set background to black
CP_Graphics_ClearBackground(CP_Color_Create(0, 0, 0, 255));
// Draw the square
CP_Graphics_DrawRect(x_pos, (float)CP_System_GetCanvasHeight() / 2.0f, 100, 100);
x_pos += 2;
// If space pressed, reset the state
if (CP_Input_KeyTriggered(KEY_SPACE))
CP_Engine_SetNextGameStateForced(init, update, NULL);
}
int main(void)
{
// Set the initial game state
CP_Engine_SetNextGameState(init, update, NULL);
// Run the program
CP_Engine_Run();
}
Related
- CP_Settings_Fill
- CP_Color_Create
- CP_Graphics_ClearBackground
- CP_Graphics_DrawRect
- CP_System_GetCanvasHeight
- CP_Input_KeyTriggered