Hola, gente estoy en las primeras etapas de un proyecto de un plataformero, y estoy teniendo problemas con la camara, eh probado la forma de LAzy foo, sin resultados, eh probado otras formas pero tambien sin resultados, creo que mi problema es mas de entendimiento que de otra cosa, el concepto que tengo es el siguiente. Creo un SDL_Rect (camara) por ejemplo, yo a ese rectangulo le sumo la posicion del personaje en los ejes X e Y y despues en (W/H) el ancho y largo deseado de la camara, despues lo renderizo en pantalla de la siguiente forma SDL_RenderCopy(renderer,NULL,NULL,&camara), despues les seteo los parametros para que no salga del ancho y largo del nivel, pero es lo mismo que nada, no funciona. Si alguien me podria orientar se lo agradeceria inmensamente. Dejo el codigo que tengo hasta ahora.
- Código: Seleccionar todo
void Jug::Draw()
{
posicion.x = rect.x+*CameraX;
posicion.y = rect.y+*CameraY;
posicion.w = rect.w;
posicion.h = rect.h;
SDL_RenderCopy (renderer,texture,&crop,&posicion);
}
void Jug::SetCamera()
{
camara.x = (*CameraX+100/2)-1440/2;
std::cout<<camara.x<<std::endl;
camara.y = (*CameraY+100/2)-900/2;
std::cout<<camara.y<<std::endl;
camara.w = 500;
camara.h = 500;
if( camara.x < 0 )
{
camara.x = 0;
}
if( camara.y < 0 )
{
camara.y = 0;
}
if( camara.x > 1440 - camara.w )
{
camara.x = 1440 - camara.w;
}
if( camara.y > 900 - camara.h )
{
camara.y = 900 - camara.h;
}
SDL_RenderCopy(renderer,texture,NULL,&camara);
}