Hola CGM  ;)

Tengo un Obj que usare para controlar el menu, que lleva como sprite el del menu empezando en start, el menu lleva 4 variables en el event create
startt = 1;
options = 0;
exxtra = 0;
exxit = 0;

(llevan doble T y doble X)

y en el event step hice:

Citarif (keyboard_check_pressed(vk_up)) && startt = 1 exit;
if (keyboard_check_pressed(vk_down)) && startt = 1
{
    startt = 0;;
    options = 1
    sprite_index = menu_opt;
}

if (keyboard_check_pressed(vk_up)) && options = 1
{
    options = 0;
    startt = 1;
    sprite_index = menu_start
}

if (keyboard_check_pressed(vk_down)) && options = 1
{
    options = 0;
    exxtra = 1;
    sprite_index = menu_extra
}

if (keyboard_check_pressed(vk_up)) && exxtra = 1
{   
    options = 1;
    exxtra = 0;
    sprite_index = menu_opt
}

if (keyboard_check_pressed(vk_down)) && exxtra = 1
{
    exxtra = 0;
    exxit = 1;
    sprite_index = menu_exit
}

if (keyboard_check_pressed(vk_up)) && exxit = 1
{
    exxtra = 1;
    exxit = 0;
    sprite_index = menu_extra
}

if (keyboard_check_pressed(vk_down)) && exxit = 1 exit;

if (keyboard_check_pressed(vk_enter)) && startt = 1 room_goto(level1);
if (keyboard_check_pressed(vk_enter)) && exxit = 1 game_end();



peeeeeeeeerooo no funciona como quiero, solo funciona bien cuando muevo el menu hacia arriba(apretando vk_up) pero cada vez que le doy hacia debajo se va siempre a exxit :s

#1 Diciembre 24, 2015, 03:33:11 AM Ultima modificación: Diciembre 24, 2015, 03:53:47 AM por Guacusio
Estás ejecutando todos los if que tienen en su condición que keyboard_check_pressed(vk_down) sea true. Para evitarlo, coloca un exit antes de cerrar la llave de cada if.

Me parece una manera un tanto ineficiente de crear un menú. Te sugiero que pruebes a utilizar una sola variable como índice de la alternativa resaltada en el menú en vez de tener una distinta para cada una de las 4 y que uses el evento keyboard press (any key) en vez de step. Por ejemplo, usando arrays:

Evento create:
//sprite de cada alternativa:
menu[0]=menu_start;
menu[1]=menu_opt;
menu[2]=menu_extra;
menu[3]=menu_exit;
op=0;//índice de la opción resaltada (start al principio)


Evento keyboard press (any key)
if keyboard_check_pressed(vk_up)
    op=max(0,op-1);//mueve el índice hacia arriba
if keyboard_check_pressed(vk_down)
    op=min(3,op+1);//mueve el índice hacia abajo
sprite_index=menu[op];
if keyboard_check_pressed(vk_enter)
    {
    if op=0
        room_goto(level1);
    else if op=3
        game_end();
    }



#2 Diciembre 24, 2015, 03:54:24 AM Ultima modificación: Diciembre 24, 2015, 03:57:13 AM por anonimo16
Era eso gracias ;D a mi se me hace mas facil ya que no se usar arrays y estoy aprendiendo gml