Written by: Andy Odle
Date: May 02, 2010
1.) Download the Ball.zip file from here.
2.) Extract Ball.png and copy it into your game's "./debug/images/" folder.
3.) Open GOC.h in CodeLite.
4.) Add the includes for Sprite.h and MathGOC.h (See Code Example 1:).
Code Example 1:
/* File Name: GOC.h */ /* Add new include files here */ #include "./source/PlatformSpecific/inc/Sprite.h" #include "./source/inc/MathGOC.h"
5.) Add a private Sprite pointer called ball_m to GOC.h (See Code Example 2:).
Code Example 2:
/* File Name: GOC.h */ private: /* Add private variables here. */ Sprite *ball_m; }; #endif
6.) Save the changes to GOC.h.
7.) Open main.cpp in CodeLite.
       Add the following code to the inside of GOC::Initialize() function.
A.) Create a PointGOC cordinate structure and name it ballPosition_l
     (See Example Code 3:).
B.) Initilize ballPosition_l's x-cordinate to half of the window's width, y-cordinate to
     half of the window's height and the z-cordinate to 0.0f (See Example Code 3:).
Example Code 3:
/*
File Name: main.cpp
*/
/*
Initialize your game scene, and game variables here.
*/
// Fill out the sprite's x-cor, y-cor and z-cor
// structure.
PointGOC ballPosition_l = {GetWindowWidth() / 2,
GetWindowHeight() / 2,
0.0f};
C.) Create a new Sprite instance for ball_m (See Example Code 4:).
D.) Set ball_m's starting position, width and height (See Example Code 4:).
E.) Load and apply a texture to ball_m (See Example Code 4:).
F.) Set the default visibility flag for ball_m (See Example Code 4:).
Code Example 4:
// Create a new instance of your sprite.
ball_m = new Sprite();
// Change the position of your sprite by passing
// in a filled out PointGOC structrue and the
// sprite's with and height.
ball_m->Set2DPosition(ballPosition_l,
24,
24);
// Apply a texture to your sprite.
ball_m->GetTexture()->LoadTexture("./images/Ball.png");
// Make your sprite visible or invisible.
ball_m->SetVisible(true);
}
       Add the following code to the inside of GOC::Destroy() function.
A.) Delete the ball_m instance (See Example Code 5:).
Code Example 5:
/* Clean up after your game here. */ // Destroy your sprite when you are done with it. delete ball_m;
8.) Click Build > Build and Run Project if there were no errors you should see
     a sprite drawn to the center of the screen (See Figure 1:).
Figure 1: First sprite on the screen.
2D Sprite Complete Example:
       You can get the complete example source code here.
/*
File Name: GOC.h
Created By: Andy Odle
Date: July 27, 2009
*/
#ifndef GOC_h
#define GOC_h
#include "./source/PlatformSpecific/inc/ErrorReport.h"
#include "./source/inc/TimeGOC.h"
#include "./source/inc/InputEngine.h"
/* Add new include files here */
#include "./source/PlatformSpecific/inc/Sprite.h"
#include "./source/inc/MathGOC.h"
class GOC
{
public:
// Initilizes the developer's game.
virtual void Initialize();
// Updates the developer's game state.
virtual void Update(TimeGOC *timeGOC_p,
InputEngine *input_p);
virtual void IndepedentUpdate(TimeGOC *timeGOC_p,
InputEngine *input_p);
// Ceans up the developer's game.
virtual void Destroy();
// This is how you interact with the GOC.
//
// Output:
// Returns the Game Object Creator instance
// pointer.
static GOC *goc_i();
// Get the window's width and height.
int GetWindowWidth();
int GetWindowHeight();
// Start the setup of the Game Object Creator.
#ifdef _WIN32
void LoadGOC(HINSTANCE &hinstance_p);
#else
void LoadGOC();
#endif
// Clean up the Game Object Creator.
void UnloadGOC();
ErrorReport *GetErrorReport();
private:
GOC();
~GOC();
GOC(GOC const&){};
GOC &operator=(GOC const&){};
private:
/* Add private variables here. */
Sprite *ball_m;
};
#endif
/*
Date Created: Apr 29, 2010
FileName: main.cpp
First Sprite Example
*/
#include "./source/PlatformSpecific/inc/GOC.h"
void GOC::Initialize()
{
/*
Initialize your game scene, and game
variables here.
*/
// Fill out the sprite's x-cor, y-cor and z-cor
// structure.
PointGOC ballPosition_l = {GetWindowWidth() / 2,
GetWindowHeight() / 2,
0.0f};
// Create a new instance of your sprite.
ball_m = new Sprite();
// Change the position of your sprite by passing
// in a filled out PointGOC structrue and the
// sprite's with and height.
ball_m->Set2DPosition(ballPosition_l,
24,
24);
// Apply a texture to your sprite.
ball_m->GetTexture()->LoadTexture("./images/Ball.png");
// Make your sprite visible or invisible.
ball_m->SetVisible(true);
}
void GOC::Update(TimeGOC *timeGOC_p, InputEngine *input_p)
{
/*
Update your game scenes, check for collisions,
check for input and play sounds here.
*/
}
void GOC::IndepedentUpdate(TimeGOC* timeGOC_p, InputEngine* input_p)
{
/*
Update your game scenes, check for collisions,
check for input and play sounds here.
*/
}
void GOC::Destroy()
{
/*
Clean up after your game here.
*/
// Destroy your sprite when you are done with it.
delete ball_m;
}
#ifdef _WIN32
// Define the windows main funciton.
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
#else
// Define the ubutnu main function.
int main(int argc, char **argv)
#endif
{
#ifdef _WIN32
// Start the GOC on windows.
GOC::goc_i()->LoadGOC(hInstance);
#else
// Start the GOC on ubuntu.
GOC::goc_i()->LoadGOC();
#endif
// Destroy and cleanup GOC.
GOC::goc_i()->UnloadGOC();
return 0;
}
Legal Info  About GOC  Contact Us