viernes, 22 de marzo de 2013

PakEngine. Capitulo 14. Interface C++

Artículo perteneciente a la sección del PakEngine

Hola a todos,

Ya hay bastantes personas que me han enviado mails con posibles mejoras del motor y con nuevas funcionalidades que estaría muy bien implementar.

La primera cosa de la que me he dado cuenta es ,que si realmente este motor va tirando adelante y vamos implementando lo que me estáis pidiendo, la interficie (el conjunto de funciones del PakEngine.h) será muy grande e inmanejable.

La solución a esto es hacer una interificie C++ que nos permita tener un poco más organizadas las funciones. Además el autocompletar de la mayoria de IDE nos permitirá acceder más fácilmente al contenido.

El código de la interficie es el siguiente:



class GraphInterface
{
public:
GraphInterface(){};
~GraphInterface(){};

public:
int Load(char *cad) { return PAKENGINE_LoadGraph(cad); };
void Draw(int x, int y, int z, int id) { PAKENGINE_DrawGraf(x,y,z,id); };
};

class TextInterface
{
public:
TextInterface(){};
~TextInterface(){};

public:
void Draw(int x, int y, int z, char *cad ) { PAKENGINE_DrawText( x, y,  z, cad ); };
};

class SoundInterface
{
public:
SoundInterface(){};
~SoundInterface(){};

public:
int Load(char *cad) { return PAKENGINE_LoadSound(cad); };
void Play(int sound) { PAKENGINE_Play(sound); };
};

class PhysicsInterface
{
public:
PhysicsInterface(){};
~PhysicsInterface(){};

public:
char Collision(int x1,int y1 ,int graf1,   int x2, int y2, int graf2)   { return PAKENGINE_Collision( x1, y1 , graf1,    x2,  y2,  graf2); };
char Collision(int x1,int y1 ,int graf1,   int x2, int y2, int graf2 , char *mode) { return PAKENGINE_Collision( x1, y1 , graf1,    x2,  y2,  graf2,  mode) ;};

char NotInside(int x1,int y1 ,int graf1,   int x2, int y2, int graf2)   { return PAKENGINE_NotInside( x1, y1 , graf1,    x2,  y2,  graf2); };
char NotInside(int x1,int y1 ,int graf1,   int x2, int y2, int graf2 , char *mode) { return PAKENGINE_NotInside( x1, y1 , graf1,    x2,  y2,  graf2,  mode) ;};
};

class InputInterface
{
public:
InputInterface(){};
~InputInterface(){};

char KeyIsPressed(char *cad) {return PAKENGINE_KeyIsPressed(cad);};
};

class PakEngine
{
public:

PakEngine(char *cad,int w,int h)
{
PAKENGINE_Init(cad,w,h);
};

~PakEngine()
{
PAKENGINE_DeInit();
};

int Render(void) {   return PAKENGINE_Render();   };
GraphInterface Graph;
TextInterface Text;
SoundInterface Sound;
PhysicsInterface Physics;
InputInterface Input;
};



Y en el editor de código queda de la siguiente forma (siendo p un objeto PakEngine):

PakEngine p("PakPong",640,480);

Aquellos de vosotros que queráis seguir programando en C puro no os preocupéis ya que la interficie C la seguiré manteniendo.

Espero que os guste.

Nos vemos,

LordPakusBlog

<< capitulo anterior

0 comentarios :

Publicar un comentario

Entradas populares