Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Yawin on November 18, 2010, 11:43:52 AM

Title: Me he complicado en un menú.
Post by: Yawin on November 18, 2010, 11:43:52 AM
Bueno, la cosa es que estoy con el menú de mi Marcianitos (CC). La cosa es que creo que me he complicado demasiado. Y, bueno, quería vuestra opinión.

Hay tres pantallas:
(http://pensarescompartir.com/lahsoft/lahsoftcorp/fondo.png)

(http://pensarescompartir.com/lahsoft/lahsoftcorp/Titulo_ind.png)

(http://pensarescompartir.com/lahsoft/lahsoftcorp/Titulo_mul.png)


El código es este:
mport "mod_video";
import "mod_map";
import "mod_screen";
import "mod_key";
import "mod_grproc";
import "mod_proc";
import "mod_rand";
import "mod_text";
import "mod_sound";
import "mod_scroll";
import "mod_mouse";
import "mod_file";
import "mod_sys"

CONST
Retardo=13;
END

GLOBAL
INT menu=1,opción=null;
INT Graficos, punt;
int pantalla=1;
END

PROCESS Main()
PRIVATE
string arg;
END
BEGIN

set_mode(640,480,32,MODE_FULLSCREEN);
set_fps(60,1);
Graficos=load_fpg("dll\prueba.fpg");

Put_screen(graficos,43);

punt=puntero(400);
musica();
repeat
switch(menu)
case 1:
Signal(punt,s_kill);
punt=puntero(300);
if(key(_enter))
while(key(_enter))
frame;
end
pantalla=2;
Put_screen(graficos,55);
menu=4;
end

end
case 2:
Signal(punt,s_kill);
punt=puntero(350);
if(key(_enter))
while(key(_enter))
frame;
end
pantalla=3;
Put_screen(graficos,56);
menu=4;
end

end
case 3:
Signal(punt,s_kill);
punt=puntero(400);
if(key(_enter))
while(key(_enter))
frame;
end
opción=3;
end
end
case 4:
Signal(punt,s_kill);
punt=puntero(317);
if(key(_enter))
while(key(_enter))
frame;
end
//opción=4;
end

end
case 5:
Signal(punt,s_kill);
punt=puntero(382);
if(key(_enter))
while(key(_enter))
frame;
end
opción=5;
end

end
case 6:
Signal(punt,s_kill);
punt=puntero(447);
if(key(_enter))
while(key(_enter))
frame;
end
opción=6;
end
end
end
if(key(_esc))
while(key(_esc))
pantalla=1;
Put_screen(graficos,43);
menu=1;
frame;
end
end
if(key(_down))
while(key(_down))
frame;
end
menu+=1;
end
if(key(_up))
while(key(_up))
frame;
end
menu-=1;
end

switch(pantalla)
case 1:
if(menu<1)
menu=3;
end
if(menu>3)
menu=1;
end
end
case 2:
if(menu<4)
menu=6;
end
if(menu>6)
menu=4;
end
end
case 3:
if(menu<4)
menu=6;
end
if(menu>6)
menu=4;
end
end
end

frame;
until(opción!=null);

switch(pantalla)
case 2:
switch(opción)
case 4:

end
case 5:
arg="Individual.bat";
exec(_P_NOWAIT,"Individual.bat",1,&arg);
end
case 6:
arg="Individual.bat";
exec(_P_NOWAIT,"nav_ind.bat",1,&arg);
end
end
end
case 3:
switch(opción)
case 4:

end
case 5:
arg="..\marcianitos_mul";
exec(_P_NOWAIT,"Multijugador.bat",1,&arg);
end
case 6:
arg="Individual.bat";
exec(_P_NOWAIT,"nav_mul.bat",1,&arg);
end
end
end
end

let_me_alone();
Unload_fpg(graficos);

END

PROCESS puntero(Y)
BEGIN
X=225;
Y=Y;
Graph=2;
loop
frame;
end
END

PROCESS musica()
PRIVATE
INT can;
INT i,j=0;
END
BEGIN
can=load_song("sounds\NA-14.mid");
for(i=0;i<=6;i++)
if(i==6)
i=0;
end
if(IS_PLAYING_SONG())
i-=1;
else
if(i==0)
set_song_volume(35);
else
set_song_volume(100);
end
Play_song(can,0);
end
frame;
end
END


Gracias de antemano.
Title: Re: Me he complicado en un menú.
Post by: DCelso on November 18, 2010, 03:03:14 PM
pues sí, lo has complicao mucho :D
por ejemplo puntero no hace falta matarlo siempre y volverlo a crear. puedes acceder a su variable y (que es la única que cambias ) a través de su id, por ejemplo punt.y=loquesea. sin tener que hacer el kill y la nueva llamada a puntero.
También en puntero y=y sobra, y siempre será igual a y :D.
A ver que más veo.
Title: Re: Me he complicado en un menú.
Post by: Yawin on November 18, 2010, 03:07:25 PM
muchas gracias. Ahora lo cambio ^__^