Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Raziel on February 11, 2013, 03:05:40 PM

Title: Matamarcianos: punto de partida.
Post by: Raziel on February 11, 2013, 03:05:40 PM
El siguiente código, por más que intente solucionarlo, no visualiza los gráficos:

import "mod_video";
import "mod_map";
import "mod_screen";
import "mod_key";

Global
Int Graficos;
End
Process Main()
Begin
set_mode(640,480);
set_fps(60,1);
Graficos=load_fpg("prueba.fpg");
Put_screen(graficos,1);
Nave();
Loop
If (key(_esc)) break; end
Frame;
End
Unload_fpg(graficos);
End
Process nave ()
Begin
//No es necesario utilizar la variable FILE porque sólo hemos cargado un FPG
Graph=2;
X=320;
//La nave está a 10 píxeles del extremo inferior de la ventana
Y=435;

Loop
If (key(_left)) x=x-4; end
If (key(_right)) x=x+4; end
If (x>600) x=600; end //Para que la nave no se salga por la derecha
If (x<40) x=40; end //Para que la nave no se salga por la izquierda
Frame;
End
END

Pertenece al capítulo de los matamarcianos, y lo raro eso que uso el Smart fpg editor, el cual me funcionó con TODOS los demás ejemplos de manual.
Title: Re:Matamarcianos: punto de partida.
Post by: panreyes on February 11, 2013, 03:09:52 PM
Primero de todo, utiliza la etiqueta [ code ]


import "mod_video";
import "mod_map";
import "mod_screen";
import "mod_key";


Global
Int Graficos;
End


Process Main()
Begin
set_mode(640,480);
set_fps(60,1);
Graficos=load_fpg("prueba.fpg");
Put_screen(graficos,1);
Nave();
Loop
If (key(_esc)) break; end
Frame;
End
Unload_fpg(graficos);
End


Process nave ()
Begin
//No es necesario utilizar la variable FILE porque sólo hemos cargado un FPG
Graph=2;
X=320;
//La nave está a 10 píxeles del extremo inferior de la ventana
Y=435;


Loop
If (key(_left)) x=x-4; end
If (key(_right)) x=x+4; end
If (x>600) x=600; end //Para que la nave no se salga por la derecha
If (x<40) x=40; end //Para que la nave no se salga por la izquierda
Frame;
End
END



He probado rápidamente ese pedazo de código con un fpg propio y ha funcionado correctamente.
Title: Re:Matamarcianos: punto de partida.
Post by: Raziel on February 11, 2013, 03:29:24 PM
Lo siento pixel, soy un poco lento... No comprendo lo que debo hacer  :-\ Ahí te dejo el fpg, el fondo lo puse amarillo para ver si se veía.
Title: Re:Matamarcianos: punto de partida.
Post by: Kloppix on February 11, 2013, 04:09:17 PM
Raziel, veo que tu fpg es de 32bits y por defecto Bennu usa 16 (por lo menos en Linux)

Solución: Utiliza gráficos de 16 bits o, mejor aún, en lugar de " set_mode(640,480); "  usa  " set_mode(640,480,32);  "
Title: Re:Matamarcianos: punto de partida.
Post by: DCelso on February 11, 2013, 04:21:59 PM
a mi me va tal cual, Ah, no, cierto, puse set_mode(640,480,32)
Title: Re:Matamarcianos: punto de partida.
Post by: DCelso on February 11, 2013, 04:30:32 PM
para que vaya en 16 bits
Title: Re:Matamarcianos: punto de partida.
Post by: panreyes on February 11, 2013, 04:31:04 PM
Claro, a mí me funcionó porque la versión de Bennu que uso por defecto crea una ventana de 640,480,32bpp
Title: Re:Matamarcianos: punto de partida.
Post by: Kloppix on February 11, 2013, 04:38:57 PM
Quote from: PiXeL on February 11, 2013, 04:31:04 PM
Claro, a mí me funcionó porque la versión de Bennu que uso por defecto crea una ventana de 640,480,32bpp

¿Eso es porque es para windows o es porque es una versión mas reciente? No entiendo por que para algunos sitemas se usa 16bpp y para otros 32.
Title: Re:Matamarcianos: punto de partida.
Post by: Rein (K´)ah Al-Ghul on February 11, 2013, 08:10:10 PM
cuando usas la sentencia set_mode, puedes definir o no, la profundidad de color (bpp), asi como el ancho y alto de la pantalla (o ventana) entre otras cosas...
No puedes usar graficos de una profundidad mayor a la que inicializaste....
Title: Re:Matamarcianos: punto de partida.
Post by: Raziel on February 11, 2013, 10:14:23 PM
Muchísimas gracias a todo, problema solucionado. El problema era, extrañamente, que no había especificado el tercer parámetro, por tanto, al poner set_mode (640, 480, 32); el programa se visualizó correctamente.