Matamarcianos: punto de partida.

Started by Raziel, February 11, 2013, 03:05:40 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Raziel

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.

panreyes

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.

Raziel

#2
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.

Kloppix

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);  "

DCelso

#4
a mi me va tal cual, Ah, no, cierto, puse set_mode(640,480,32)
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

panreyes

Claro, a mí me funcionó porque la versión de Bennu que uso por defecto crea una ventana de 640,480,32bpp

Kloppix

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.

Rein (K´)ah Al-Ghul

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....

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Raziel

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.