Ya veo, claro es un problema de calculo de posicion, tu usas una mapa de dureza de 640x480, mientra la pantalla esta en 800x600, como no haces nigun calculo para convertir en las coordenadas de pantalla, te encuentras con esos problemas, mira, cambia el PRG en ese modo:
- Code: Select all
PROGRAM Gravedad;
PRIVATE
figura;
BEGIN
set_mode(640,480,32,mode_FULLSCREEN); // Ajustamos el modo de pantalla 32 bits
load_fpg ("prueba32.fpg"); // Cargamos los graficos 32 bits
put_screen (0,106); // Pintamos el fondo
mouse.graph=5;
write(0, 0, 0, 0, "FIGURA:");
write_int(0, 42, 0, 0, offset figura);
personaje(230,200);
loop
figura = map_get_pixel(0, 106, mouse.x, mouse.y);
frame;
end
END
//-----------------------------------------------------------------------------
// Proceso para el personaje principal
//-----------------------------------------------------------------------------
PROCESS personaje(x,y);
private
color;
BEGIN
graph=4;
write_int(0,42,30,4,offset COLOR);
LOOP
color= map_get_pixel(0,106,x,y);
if (color != rgb(255,0,255)) y++; end
frame;
END
END
Ya veras que si funciona.
Un juego de ejemplo que puedes mirar para ver como hacer un juego de plataformas con durezas es el
MALVADO.PRG, lo puedes encontrar bajandote el pack de
Games & tutorials de DIV2 en la seccion novedades y releases.
Si necesitas otra ayuda pides sin problemas
Saludos y hasta pronto.