Hola a todos,
Este curso de programación no lo teneis que ver como un curso a la vieja usanza sino como un ente interactivo en el que en base a vuestras preguntas y sugerencias iré construyendo capitulos que intenten resolver vuestras dudas.
Hace pocas horas uno de los lectores del blog me ha comentado por el gtalk que ha empezado a provar el motor 2D y que le parece muy engorroso tener que escribir cada vez que quiere hacer algo:
Core::singleton().loquesea();
Y tiene razón. Así que aprovecho la oportunidad para que los que no tienen demasiada idea de prorgamación en C/C++ puedan ir entendiendo los conceptos mediante la práctica.
La forma de resolver este problema es sencilla mediante un define.Como? En el core.h incluimos
//Hacemos un poco más facil la vida al programador de juegos
#define LPE Core::singleton()
Y así en el código del juego las llamadas quedan bastante más cortas (ignorad las funciones que veais raras no son mas que el ejemplo que estoy haciendo para el capitulo 18 del curso del game engine, cuando llegue el momento os lo enseñare :D ) :
void draw ()
{
static bool right = true;
static int angle = 0;
int x,y;
if ( LPE.KeyBoardRight() )
right = true;
if ( LPE.KeyBoardLeft() )
right = false;
if ( right )
LPE.DisableFlag("INVX");
else
LPE.EnableFlag("INVX");
//Personaje
LPE.DrawAnim(300,260,"RUN");
//Pintamos el arma
LPE.GetMousePosition(&x,&y);
angle = atan2( (double)(y - 230), (double)( 290 - x) ) * 180/PI + 180;
angle %= 360;
LPE.DrawCenterRotate(290,230,angle,"PLAYER",3);
//Cuando hemos acabado de pintar lo que queremos tener girado, desactivamos los flips de x
LPE.DisableFlag("INVX");
//Pintado de textos
LPE.DrawText("SYSTEM",200,350,"ANIMACIONES 2D");
}
Si, LPE viene de LordPakus Engine , es que soy de un original que espanta ... :D
Alguna sugerencia o duda más? algo que creais que se puede mejorar o sencillamente que no entendeis?? Si me la haceis llegar os prometo haceros un capitulo respondiendola.
Nos vemos