- Código: Seleccionar todo
void Imprimir()
{
while (1) //Hasta que no se hayan impreso todos los tiles no sale del bucle.
{
if (x!=9)
{
x++;
PosTiles.x+=50;
}
else
{
if (y!=9)
{
x=0;
PosTiles.x=0;
y++;
PosTiles.y+=50;
}
else
{
break; //Sale del bucle.
}
}
if (MAP1[y][x]==0) //Dedice que imagen hay que imprimir
{
PosTilesR.x=0;
PosTilesR.w=50;
}
if (MAP1[y][x]==1)
{
PosTilesR.x=50;
PosTilesR.w=100;
}
SDL_BlitSurface(tiles,&PosTilesR,pantalla,&PosTiles);
}
SDL_BlitSurface(personaje1,&PosPersonaje1R,pantalla,&PosPersonaje1);
SDL_Flip(pantalla);
}
No es bueno el código, al mover el personaje no se ve fluido. Tampoco se me ocurre un modo de detectar colisiones.
Miré el ejemplo de Colisión de plataformas pero me cuesta entender tanto código que no he escrito yo.
A ver si alguien me da la teoría, o un ejemplo sencillo, para:
-Imprimir tiles (de un buen modo).
-Detectar colisiones con los tiles.
Luego intentaré ponerlo en práctica. El juego no será de plataformas, la vista será desde arriba (http://i37.tinypic.com/10e3db8.jpg), así que no necesita nada de gravedad.
Saludos y gracias.