Hola AmakaST,
te adjunto archivo donde se muestran dos bugs
1.En tablas bidimensionales no puedo hacer sumas dentro de los [][] pues se intercambian las x por las y.
2.en map_block copy tampoco puedo hacer operaciones tipo (j-1)*8 porque me expresa que la variable no existe...dentro de un for
AL ver el codigo se entendera adecuadamente donde pone Falla!!!
Adjunto archivo y codigo fuente:
program Plataformas_10x10;
GLOBAL
Coli_box;//colision caja
P_x = 8;//Posicion x
P_y = 8*14;//rectangulo alto
P_ancho=8;
P_alto= 8;//16
zz;
T_fondo[128,128];//para no complicar el algoritmo lo hago en dos dimensiones...quizas lo cambie.....
//10 pantallas.....de tamaño 128x128 .....
//T_salto[]=-10,-8,-6,-4,-2,-2,-1,-1,0,0,1,1,2,2,4,6,8,10;
//T_salto[]=-9,-7,-5,-2,-2,-1,-1,0,1,1,2,2,5,7,9;
T_salto[] =0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; /////////15..............
T_salto1[] =-3,-3,-2,-1,0,0,0,0,0,1,2,3,3; /////13
T_salto2[] =-4,-4,-3,-2,-2,-1,-1,0,0,0,0,0,0,0,0,1,1,2,2,3,4,4; /////////22..............
T_tipo[] = 0,1,2,3,4,5,6,7,8,9;
T_coli[] = 0,0,0,0;
N_colisiones=0;
//T_salto2[] =-10,-8,0,8,10; /////////19..............
indice_salto=0;
Tabla_Fondo[17,17];
valor_tabla;
T_x = 8;//posicion rectangulo x
T_y = 8;//posicion rectangulo y
T_ancho=8;
T_alto =8;
caida=1;
Poder_salto=6;
v_g=2;
saltando;
salto_poder=8;
puedo_saltar=0;
jota1;
jota2;
jota3;
jota4;
jota5;
jota6;
jota7;
jota8;
dista_up;
dista_do;
dista_le;
dista_ri;
coli_up;
coli_do;
coli_le;
coli_ri;
coli_tipo;
mame;
FICHERO1;
Prota_cajax;
Prota_cajay;
Prota_estoy;
Prota_Saltando;
Prota_H;
Prota_V;
escaleras;
piiso;
Box_x;
BOx_y;
BOX_YY;
TOTAL;
LOADING
set_mode(m320x240);
set_title("Game´s Evoteka: Cargando...");
text = 'Cargando datos...';
text_color = rgb(255, 220, 200);
text_size = 40;
text_x = 240;
text_y = 200;
text_position = 4;
BEGIN
set_title("My Program Name");
set_mode(128,128,3);
set_color(rgb(0,0,0));
screen_color(rgb(20,50,10));
screen_smooth(false);
screen_color(cc_silver);
set_fps(40, 0);
text_size=42;
//write_int(0,0,20,0,offset jota1);
FICHERO1=load_fpg("graficos/motor0001/");
write_int(0,40,10,0,offset jota1);
write_int(0,40,20,0,offset jota2);
// write_int(0,40,30,0,offset jota3);
// write_int(0,40,40,0,offset jota4);
// write_int(0,40,50,0,offset jota5);
// write_int(0,40,60,0,offset jota6);
// write_int(0,40,80,0,offset jota7);
// write_int(0,60,80,0,offset jota8);
Graba_tabla();
// Tile(T_x,T_y);
//Prota(P_x,P_y);
loop
IF (key(_esc))
unload_fpg(Fichero1);
exit("Text Exit", 1);
END
frame;
end
end
/*
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ GRABA TABLA ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
*/
PROCESS Graba_tabla()
private
pixel,xx,yy;
BEGIN
FILE=FICHERO1;
set_center(0,14,0,0);
FOR(y=0;y<16;y++)
FOR(x=0;x<16;x++)
pixel=map_get_pixel(file,14,x,y,"r");
xx=x+1;
yy=y+1;
SWITCH(pixel)
CASE 1 : tabla_fondo[xx][yy]=4;END
CASE 10 : tabla_fondo[xx][yy]=3;END
CASE 20 : tabla_fondo[xx][yy]=2;END
CASE 255: tabla_fondo[xx][yy]=1;END
DEFAULT tabla_fondo[xx][yy]=0;END
END
/* FALLA
SWITCH(pixel)
CASE 1 : tabla_fondo[x+1][y+1]=4;END
CASE 10 : tabla_fondo[x+1][y+1]=3;END
CASE 20 : tabla_fondo[x+1][y+1]=2;END
CASE 255: tabla_fondo[x+1][y+1]=1;END
DEFAULT tabla_fondo[x+1][y+1]=0;END
END
ME INVIERTE LAS X POR LAS Y ?¿?.....
*/
END
END
PINTA_FONDO();
END
/*
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ PINTA FONDO TABLA ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
*/
PROCESS PINTA_FONDO()
private i,j,valor,pixel,xx,yy;
BEGIN
file=FICHERO1;
//graph=800;
x=128/2;
y=128/2;
start_scroll(0,FICHERO1 , 800, 9, 0, 0);
scroll[0].front.alpha = 100; scroll[0].back.alpha = 100;
FOR(i=1;i<17;i++)
FOR(j=1;j<17;j++)
pixel=tabla_fondo[j][i];
SWITCH(pixel)
CASE 0 : valor = 810;END
CASE 1 : valor = 802;END
CASE 2 : valor = 702;END
CASE 3 : valor = 703;END
CASE 4 : valor = 706;END
END
xx=j-1;
yy=i-1;
map_block_copy(fichero1, 800, xx*8+4,yy*8+4,valor , 0,0, 8,8);//dibuja un punto en el centro...
/*___________________________ FALLLA ______________________________________________________________
map_block_copy(fichero1, 800, (j-1)*8+4,(i-1)y*8+4,valor , 0,0, 8,8);//dibuja un punto en el centro...
*/
END
END
refresh_scroll(0);
//start_scroll(0, fichero1, 830, 201, 0, 15);
LOOP
scroll[0].back.y -=0.5;
FRAME;
END
END
Sugerencias Sobre el editor fpg:
1.Deberia haber alguna forma de poder importar las imagenes directamente al fpg de divgo...por ejemplo si tengo en una carperta con imagenes numeradas 000.png 001.png que leyera esa carpeta o que la pudiera arrastrar y añadir directamente los graficos..
2.Si me equivoco en un grafico en su asignacion dios mio!!lo tengo que repetir todo,tendria que haber alguna forma de eliminar el grafico o copiar encima otro.
3.Cuando cierro el editor fpg y por ejemplo estoy en el grafico 300..cuando lo vuelva abrir su indice deberia mantenerse en el 300 no el primer numero no asignado a un grafico
Un saludo y sigo programando....