Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Problema con codigo para menu  (Leído 424 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado anonimo16

en: Diciembre 24, 2015, 02:31:53 am
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:

Citar
if (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

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Guacusio

Respuesta #1 en: Diciembre 24, 2015, 03:33:11 am
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:
Código: [Seleccionar]
//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)
Código: [Seleccionar]
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();
    }
« última modificación: Diciembre 24, 2015, 03:53:47 am por Guacusio »


 


Desconectado anonimo16

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