#include "Pantalla.h"
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(int argc, char **argv)
{
Pantalla_Crea("pantalla",800,600);
Imagen fondo=Pantalla_ImagenLee("fondo.bmp",0);
Imagen personaje=Pantalla_ImagenLee("personaje.bmp",1);
Imagen enemigo=Pantalla_ImagenLee("enemigo.bmp",1);
int terminado = 0;
char texto[100];
double x1,x2,y1,y2,r1,r2,sr,dc;
srand(time(NULL));
FILE *fichero;
fichero = fopen("puntuaciones.txt", "rb+");
int RA;
struct PersonajeRep{
int h,w,px,py,vy,vx;
Imagen i;
};
struct enemigoRep{
int h,w,px,py,vx,vy,dx,dy;
Imagen i;
};
struct PersonajeRep personaje1;
personaje1.h=200;
personaje1.w=150;
personaje1.px=600;
personaje1.py=450;
personaje1.vx=40;
personaje1.vy=40;
personaje1.i=personaje;
struct enemigoRep enemigo1;
enemigo1.h=150;
enemigo1.w=150;
enemigo1.px=10;
enemigo1.py=10;
enemigo1.dx =10;
enemigo1.dy =10;
enemigo1.i=enemigo;
while (Pantalla_Activa() && !terminado) //Primera pantalla
{
if (Pantalla_TeclaPulsada(SDL_SCANCODE_RETURN)) terminado = 1;
Pantalla_DibujaImagen(fondo,0,0,Pantalla_Anchura(),Pantalla_Altura());
Pantalla_DibujaTexto("Buenos dias.",100,100);
Pantalla_DibujaTexto("Presiona 'Return' para empezar",110,130);
Pantalla_ColorTrazo(0,0,255,255);
Pantalla_Actualiza();
Pantalla_Espera(40);
}
int t1=time(NULL);
int colision=0;
while ((Pantalla_Activa()) && (!(Pantalla_TeclaPulsada(SDL_SCANCODE_SPACE))) && (colision=0)) //Segunda pantalla
{
//Movimientos del personaje
if (Pantalla_TeclaPulsada(SDL_SCANCODE_LEFT) && (personaje1.px>0)) personaje1.px=personaje1.px-personaje1.vx;
if (Pantalla_TeclaPulsada(SDL_SCANCODE_RIGHT) && (personaje1.px<650)) personaje1.px=personaje1.px+personaje1.vx;
if (Pantalla_TeclaPulsada(SDL_SCANCODE_UP) && (personaje1.py>0)) personaje1.py=personaje1.py-personaje1.vy;
if (Pantalla_TeclaPulsada(SDL_SCANCODE_DOWN) && (personaje1.py<501)) personaje1.py=personaje1.py+personaje1.vy;
//Movimiento autonomo del enemigo
enemigo1.px=enemigo1.px+enemigo1.dx;
enemigo1.py=enemigo1.py+enemigo1.dy;
if (enemigo1.px >Pantalla_Anchura()-enemigo1.w || enemigo1.px<1 ) enemigo1.dx= -enemigo1.dx;
if (enemigo1.py >Pantalla_Altura()-enemigo1.w || enemigo1.py<1) enemigo1.dy= -enemigo1.dy;
//intento de colisiones
x1=personaje1.px; x2=enemigo1.px; y1=personaje1.py; y2=enemigo1.py;
r1=100.0;
r2=75.0;
sr=r1+r2;
dc=sqrt(pow(x2-x1,2)+pow(y2-y1,2));
if (sr>dc) colision=1;
Pantalla_DibujaImagen(fondo,0,0,Pantalla_Anchura(),Pantalla_Altura());
Pantalla_DibujaImagen(personaje1.i,personaje1.px,personaje1.py,personaje1.h,personaje1.w);
Pantalla_DibujaImagen(enemigo1.i,enemigo1.px,enemigo1.py,enemigo1.h,enemigo1.w);
int t2=time(NULL);
int t=t2-t1;
sprintf(texto,"%d s.",t);
Pantalla_DibujaTexto(texto,100,100);
Pantalla_Actualiza();
Pantalla_Espera(40);
}
Pantalla_ImagenLibera(fondo);
Pantalla_ImagenLibera(personaje);
Pantalla_ImagenLibera(enemigo);
Pantalla_Libera();
int t2=time(NULL);
int t=t2-t1;
fscanf(fichero,"%d",&RA);
if (RA<t)
{
fseek ( fichero, 0 , SEEK_SET );
fprintf(fichero,"%d",t);
printf("¡¡¡NUEVO RECORD!!!\t");
} else
{
printf("Lo sentimos, no has establecido ningun record\n");
}
printf("La puntuacion es: %d\n",t);
printf("sr es: %d y dc es: %d \n",sr,dc);
fclose(fichero);
return 0;
}