Código:
Process main()
begin
set_mode(320,240,16);
load_fpg("graficos1.fpg");
put_screen(0,1);
prota();
loop
frame;
if key(_esc):break;end
end
let_me_alone();
end
Process prota();
private
int gravedad;
int contgravedad;
int pixeld;
int pixeld2;
int pixeld3;
int pixell;
int pixelr;
int redd,greend,blued;
int redd2,greend2,blued2;
int redd3,greend3,blued3;
int redl,greenl,bluel;
int redr,greenr,bluer;
int saltando;
begin
graph=2;
x=160;
y=120;
write_var(0,10,10,0,gravedad);
write_var(0,10,20,0,redd);
write_var(0,10,30,0,redd2);
write_var(0,10,40,0,redd3);
write_var(0,10,50,0,contgravedad);
write_var(0,10,60,0,saltando);
write_var(0,300,10,0,x);
write_var(0,300,20,0,y);
loop
if(key(_space))x=160;y=120;end
if(redd>240 && greend>240 && blued>240) x=160;y=120;end
//Gravedad
y-=gravedad;
pixeld=map_get_pixel(0,1,x,y+19);
get_rgb(pixeld,&redd,&greend,&blued);
pixeld2=map_get_pixel(0,1,x+19,y+19);
get_rgb(pixeld2,&redd2,&greend2,&blued2);
pixeld3=map_get_pixel(0,1,x-19,y+19);
get_rgb(pixeld3,&redd3,&greend3,&blued3);
if(redd<240 && redd2<240 && redd3<240) ;gravedad=-4 ; else gravedad=0;saltando=0; end
//Movimiento
pixell=map_get_pixel(0,1,x-19,y);
get_rgb(pixell,&redl,&greenl,&bluel);
pixelr=map_get_pixel(0,1,x+19,y);
get_rgb(pixelr,&redr,&greenr,&bluer);
IF (key(_right) && (redr<240||redd2<240))x=x;else x -= 4 ; END
IF (key(_left) && (redl<240||redd3<240))x=x;else x += 4 ; END
IF (key(_down)) y += 4 ; END
IF (key(_up)) gravedad=0; y -= 4 ; END
//salto
contgravedad--;
if(contgravedad<0)contgravedad=0;end
if(key(_control) && contgravedad==0 && (redd>240 || redd2>240 ||redd3>240 )) contgravedad=10;saltando=1;end
if(contgravedad<>0)y-=4;gravedad=0;end
frame;
end
end
El problema que tengo se puede ver en este video...
Marcadores