Hola a todos:
Pues nada, que haciendo "experimentos" he descubierto dos cosas:
-Que no tengo ni idea de cómo funciona el blit sustractivo (he puesto un cuadrado rojo sobre uno blanco sobre fondo negro, y sólo se veía parte del rojo sobre el cuadrado blanco, cuando en la intersección se suponía que debería verse turquesa, en mi juego he tenido que invertir colores del gráfico del proceso con el flag32 para conseguir el efecto de oscurecimiento (eso lo puedes ver el el juego que te pasé, Splinter))
-Y que un proceso con flags=32 NO COLISIONA NUNCA.
Código de prueba:
[code language="bennu"]program collision_test;
GLOBAL
int map1,map2;
int temp;
BEGIN
set_mode(800,600);
set_fps(50,0);
map1=new_map(70,70,16);
map_clear(0,map1,rgb(255,255,255));
map2=new_map(70,70,16);
map_clear(0,map2,rgb(255,0,0));
id_graf(map2);
x=400;
y=300;
graph=map1;
write_int(0,0,0,0,&temp);
loop
temp=collision(type id_graf);
if (key(_esc)) break; end
frame;
end
unload_map(0,map1);
unload_map(0,map2);
let_me_alone();
END
process id_graf (graph)
begin
z=-2;
flags=32;
loop
x=mouse.x;
y=mouse.y;
frame;
end
end
[/code]
Ahí se pueden ver ambas cosas. Esta vez, o tengo un error garrafal de comprensión (yo ya no descarto nada) o efectivamente hay un fallo.
te suplico que intentes poner tus codigos con los imports necesarios.
no se que pasa, en 32bits funciona, con graficos de 32bits.
ahora no puedo analizar el tema, esta semana estoy complicado.
ups, perdón, fallo tonto, mira que hice el ejemplo para que no hiciesen falta gráficos y me olvidé de los include ^^U
Es lo que tiene tener la bgdc.import universal en la carpeta de pruebas :P