- Código: Seleccionar todo
#include "Sdl/SDL.h"
#include "Sdl/SDL_image.h"
#include "clases/controlador/controlador.h"
#include "clases/imagen/imagen.h"
#include "clases/texto/texto.h"
//variables//
bool bucle= true;
SDL_Surface* video;
SDL_Event evento;
//instancias//
CControlador controlador;
CImagen imagen;
CTexto texto("fuentes/courier.ttf",12);
//programa//
int main(int argc, char **argv)
{
SDL_Init(SDL_INIT_VIDEO);
TTF_Init();
imagen.Cargar(0,"graficos/Homosapiperro.jpg");
video= SDL_SetVideoMode(800,600,16,SDL_HWSURFACE|SDL_DOUBLEBUF);
while (bucle)
{
//aqui uso metodos de dibujado para imagen y texto//
imagen.Dibujar(video,0);
texto.Dibujar("hola mundo",video,30,40,200,100,50);
while (SDL_PollEvent(&evento))
{
if (evento.type== SDL_KEYDOWN)
{
switch (evento.key.keysym.sym)
{
case SDLK_ESCAPE:
bucle= false;
break;
}
}
}
}
return 0;
}
Aqui imagen.cpp:
- Código: Seleccionar todo
#include "imagen.h"
//--CONSTRUCTORES--//
CImagen::CImagen()
{
fotocant= 0; fotoactu= 1; x= 0; y= 0;
}
//--METODOS--//
//Cargar//
void CImagen::Cargar(short delactu, char *directorio)
{
if (delactu== 0)
{
fotocant++;
repositorio[fotocant]= IMG_Load(directorio);
}
else
{
short n;
for (n= 1;n< fotocant;n++)
{
SDL_FreeSurface(repositorio[n]);
}
fotocant= 1;
repositorio[fotocant]= IMG_Load(directorio);
}
}
//Vaciar//
void CImagen::Vaciar()
{
short n= 0;
for (n= 1;n< fotocant;n++)
{
SDL_FreeSurface(repositorio[n]);
}
fotocant= 0;
}
//Dibujar//
void CImagen::Dibujar(SDL_Surface* lugar, short MtrFtg)
{
SDL_Rect destino;
destino.x= x;
destino.y= y;
if (MtrFtg== 0)
{
SDL_BlitSurface(repositorio[fotoactu],NULL,lugar,&destino);
if (fotocant> 1)
{
if (fotoactu!= fotocant)
fotoactu++;
else
fotoactu= 1;
};
}
else
SDL_BlitSurface(repositorio[MtrFtg],NULL,lugar,&destino);
}
Y aqui texto.cpp:
- Código: Seleccionar todo
#include "texto.h"
//--CONSTRUCTORES--//
CTexto::CTexto(const char *directorio,int tamano)
{
fuente= TTF_OpenFont(directorio,tamano);
}
//--METODOS--//
//Dibujar//
void CTexto::Dibujar(const char* ttexto,SDL_Surface* lugar,short x,short y,short fg1,short fg2,short fg3)
{
fgcolor.r= fg1;
fgcolor.g= fg2;
fgcolor.b= fg3;
bgcolor.r= 255;
bgcolor.g= 0;
bgcolor.b= 0;
texto= TTF_RenderText_Shaded(fuente,ttexto,fgcolor,bgcolor);
posicion.x= x;
posicion.y= y;
SDL_BlitSurface(texto,NULL,lugar,&posicion);
}
Los h. estan correctamente en estas dos clases al igual que al cargar la imagen y la fuente, aparte de eso me gustaria colaborar como programador en la comunidad aunque sea principiante, si esto es muy molesto les puedo dejar el enlace al proyecto, muchas gracias ^^