terça-feira, 22 de maio de 2012

Códigos para menu pause

Essa engine foi feita no video acima aqui os códigos .
Create:


screen=noone;//variavel que ira armazenar a tela
pause=false;//variavel que define se o jogo esta ou nao pausado
menu[0]="Continuar"//menus
menu[1]="Salvar"//menus
menu[2]="Carregar"//menus
menu[3]="Sair"//menu
menus=4;//numero maximo de menus
select=0;//variavel para selecionar o menu

Step:


if keyboard_check(ord("P"))//checa se o espaço foi pressionado
{
event_user(0);
}

User defined 0 :


    if (pause==false)//checa se o pausa esta desativado
    {
    screen=sprite_create_from_screen(0,0,view_wview,view_hview,0,0,0,0);//salva a a tela na variavel screen
    instance_deactivate_all(1);//desativa todos os objetos exeto este
    pause=true;//define como pausado
    }else
    {
    pause=false;//define pause como desativado
    instance_activate_all();//ativa tudo
    }

Draw : if (pause)//checa se esta pausado
{
    if (sprite_exists(screen))//checa se a sprite existe
    {
    draw_sprite(screen,0,view_xview,view_yview);//desenha o ultima tela de jogo antes de pausar
    var _xx,_yy;//cria duas variaveis temporarias
    _xx=view_xview+view_wview/2;//retorna ao valor do centro da tela horizontal
    _yy=view_yview+view_hview/2//retorna ao valor do centro da tela vertical
    draw_set_halign(fa_center);//define o modo de texto como centro
    draw_set_color(c_red);//define a cor padrao como black
    draw_text(_xx,_yy,"Jogo Pausado!");//desenha o texto pausado na tela
    //controlar o select
    if (keyboard_check_pressed(vk_up))//checa se a seta up foi pressionada
    {
    select-=1;//move o selection para cima
    }else
    if (keyboard_check_pressed(vk_down))//checa se a seta down foi pressionada
    {
    select+=1;//move o selection para baixo
    }
    while(select>=menus){select=0;}//limita o maximo que o selection pode descer
    while(select<0){select=menus-1;}//limita o maximo que o selection pode subir
    //desenhar menus
        for (i=0;i<menus;i+=1;)//cria uma laço de execução na mesma frame de 1 ao valor menu
        {
            if (select==i)//checa se o selection é igual ao valor de i
            {
                if (keyboard_check_pressed(vk_enter))//checa se o enter foi pressionado
                {
                    switch(select)//lavanca para checagem do select
                    {
                    case 0:event_user(0);break;//caso seja 0(resumir) entao executa o código do event_user(0)
                    case 1:game_save(get_string("Salvar Jogo(o jogo ficara salvo na pasta não esqueça de colocar .sav)","Nome.sav"));break;
                    case 3:if (show_question("sair do jogo?")){game_end();};break;//case seja 2(sair) executa o show_question para sair do jogo
                    case 2:game_load(get_string("carregar Jogo não esqueça de colcoar .sav","Nome.sav"));break;
                    }
                }
            draw_set_color(c_white);//define cor padrao como white
            }else
            {
            draw_set_color(c_black);//define cor padrao como black
            }
        draw_text(_xx,_yy+24+(i*string_height(menu[i])),menu[i]);//desenha todos os menus na tela
        }
    draw_set_halign(fa_left);//define o modo de texto como left
    }
}
draw_set_color(c_black);
draw_text(0,0,"");




Nenhum comentário:

Postar um comentário