GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse.

2 participantes

Ir para baixo

[Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Empty [Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse.

Mensagem por Carlos L. Dom 24 Abr 2011, 18:11

Nome: Personalizando Menu e Controlando com o Mouse.
Descrição: Ensina como personalizar um menu e controla-lo com o mouse.
Nível de dificuldade: Iniciante.
Requerimentos: Game Maker 8.

Antes de mais nada "Oi, Como vai você?", vou começar mais um tutorial onde explicarei como controlar um menu pelo mouse, e personaliza-lo com sprites e funções de desenho, onde no final iremos ter o seguinte resultado.

[Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Screenshot100hq
Então vamos deixar de papo e começar.
Antes de mais nada vamos colocar as variáveis que nos serão necessárias para criar nosso menu.
Código:
opc = 1; // Opção que estará selecionada ao começar o jogo.
men_opc = 3; // Número de Opções que terá nosso menu.
Agora iremos primeiramente controlar nosso menu pelo teclado.
Código:
// Controlando menu pelo 'Teclado'.
if (keyboard_check_pressed(vk_up)) then
{
    opc -= 1;
}
if (keyboard_check_pressed(vk_down)) then
{
    opc += 1;
}
if (opc > men_opc) then
{
    opc = 1;
}
if (opc < 1) then
{
    opc = men_opc;
}
if (keyboard_check_pressed(vk_enter)) then
{
    if (opc = 1) then
    {
        show_message('Você iniciou o jogo.');
    }
    if (opc = 2) then
    {
        show_message('Você entrou no menu opções.');
    }
    if (opc = 3) then
    {
        show_message('Você optou por sair do jogo.');
    }
}
Pronto a primeira parte do tutorial já está pronta mais essa parte devo creditar ao tutorial do fUzEnRaD [Tutorial] Menu Principal , e agora sim vou mostrar como controlar pelo mouse e personaliza-lo então vamos lá.

No menu que criei acima usei três sprites para as opções vocês poderão utilizar sprites ou então desenhar as opções na tela com a função draw_text, mas aqui nós não iremos utiliza-lá.
Como já criamos a seleção então primeiro vou ensinar como criar a personalização do menu, vamos lá.
Eu particularmente como já havia dito usei três sprites então o que eu fiz primeiramente desenhei essas sprites na room então vamos desenhar as nossas.
Código:
background_color = c_black; // Define a cor do background como sendo a cor preta.
draw_sprite(SprIniciar,0,16,165); // Desenha a sprite Iniciar na posição definida.
draw_sprite(SprOpcoes,0,16,205);// Desenha a sprite Opções na posição definida.
draw_sprite(SprSair,0,16,245);// Desenha a sprite Sair na posição definida.
Agora que já desenhamos nossas sprites na tela se executarmos nosso jogo e pressionarmos para cima ou para baixo não terá como saber qual opção estamos escolhendo, logo teremos que personalizar esse menu para poder saber que opção estamos escolhendo, então iremos desenhar um retângulo que vai de ponta a ponta da room e que será desenhado de acordo com a opção escolhida, vamos aos códigos, logo abaixo de onde desenhamos nossas sprites digite o seguinte código.
Código:
background_color = c_black; // Define a cor do background como sendo a cor preta.
draw_sprite(SprIniciar,0,16,165); // Desenha a sprite Iniciar na posição definida.
draw_sprite(SprOpcoes,0,16,205);// Desenha a sprite Opções na posição definida.
draw_sprite(SprSair,0,16,245);// Desenha a sprite Sair na posição definida.
switch(opc)
{
    case 1: draw_rectangle_color(0,160,room_width,200,c_red,c_red,c_white,c_white,0); break;
    case 2: draw_rectangle_color(0,200,room_width,240,c_red,c_red,c_white,c_white,0); break;
    case 3: draw_rectangle_color(0,240,room_width,280,c_red,c_red,c_white,c_white,0); break;
}
Para quem não conhece a função switch e um if mais 'chique' onde ela pode executar uma série de situações dependendo do valor de seu caso. Acima fizemos o seguinte citamos a variável opc que é nossa var que controla que opção estamos escolhendo e informamos ao computador que caso o valor dessa var seja 1 ela desenhará um retângulo de largura x e altura y na posição escolhida que no nosso caso e uma posição onde fica totalmente atrás de nossa opção, mas se você testar o jogo verá que nosso retângulo desenhado ficou na frente de nossa opção.
O porque disso é que o Game Maker executa seus códigos de acordo como eles foram escritos e como desenhamos nossa sprite antes do nosso retângulo ela ficará por trás do mesmo, para contornar isso e só inverter a ordem dos códigos, deixando-os assim.
Código:
switch(opc)
{
    case 1: draw_rectangle_color(0,160,room_width,200,c_red,c_red,c_white,c_white,0); break;
    case 2: draw_rectangle_color(0,200,room_width,240,c_red,c_red,c_white,c_white,0); break;
    case 3: draw_rectangle_color(0,240,room_width,280,c_red,c_red,c_white,c_white,0); break;
}
background_color = c_black;
draw_sprite(SprIniciar,0,16,165);
draw_sprite(SprOpcoes,0,16,205);
draw_sprite(SprSair,0,16,245);
Pronto resolvido, mas antes que eu possa começar a ensinar como controlar nosso menu pelo mouse vale lembrar que também poderíamos usar o if para desenhar nosso retângulo, mais não irei colocar esse código aqui para que vocês possam exercitar um pouco seu raciocino, então agora vamos ao controle do menu pelo mouse.

O que iremos fazer é simples pois iremos fazer o seguinte: Caso o ponteiro do mouse esteja no eixo y entre uma certa posição ele irá selecionar uma certa opção, e como iremos definir essa posição do nosso mouse é simples pois ela será a altura do nosso retângulo desenhado, sendo assim temos as seguintes delimitações para o mouse.
- Para ele selecionar a primeira opção ele terá que está entre a posição (160, 200);
- Para ele selecionar a segunda opção ele terá que está entre a posição (200, 240);
- Para ele selecionar a terceira opção ele terá que está entre a posição (240, 280).
Como já sabemos as delimitações do mouse e só fazer nosso código.
Código:
// Controlando menu pelo 'Mouse'.
if (mouse_y <= 200 and mouse_y >= 160) then // Se a posição do mouse no eixo y for entre 200, 160;
{
    opc = 1; // A var opc e igual a 1;
    if (mouse_check_button_pressed(mb_left)) then // E se ele clicar com o botão esquerdo enquanto estiver nessa posição ele executará o Código abaixo.
    {
        show_message('Você iniciou o jogo.');
    }
}
if (mouse_y <= 240 and mouse_y >= 200) then
{
    opc = 2;
    if (mouse_check_button_pressed(mb_left)) then
    {
        show_message('Você entrou no menu opções.');
    }
}
if (mouse_y <= 280 and mouse_y >= 240) then
{
    opc = 3;
    if (mouse_check_button_pressed(mb_left)) then
    {
        show_message('Você optou por sair do jogo.');
    }
}

Pronto Terminamos, caso você não tenha conseguido fazer pelo tutorial e só baixar a engine desse logo abaixo.
Código:
http://www.4shared.com/file/nh7gbz5h/Menu_Personalizado.html
Pronto era isso que eu queria passar para o pessoal, espero que gostem e qualquer dúvida e só falar.flw

Carlos L.
Carlos L.

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios : [Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Empty Re: [Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse.

Mensagem por Assassino Dom 24 Abr 2011, 18:22

E ai Beleza ? Valeu PC siqueira :C:, gostei do tutorial bem explicativo e didático, tinha funções aê que eu nem me lembrava que existia Happy então não tenho mais o que dizer do seu tutorial, apenas que mandou bem! Smile
Assassino
Assassino

Data de inscrição : 13/08/2010
Reputação : 6
Número de Mensagens : 390
Prêmios : [Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://rockstarfamilies.blogspot.com/

Ir para o topo Ir para baixo

[Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Empty Re: [Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse.

Mensagem por Carlos L. Dom 24 Abr 2011, 19:29

weslleyvieira escreveu:E ai Beleza ? Valeu PC siqueira :C:, gostei do tutorial bem explicativo e didático, tinha funções aê que eu nem me lembrava que existia Happy então não tenho mais o que dizer do seu tutorial, apenas que mandou bem! Smile
Opa valeu até eu me esqueço de algumas funções de vez em quando.
flw
Carlos L.
Carlos L.

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios : [Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse. Empty Re: [Carlos - Tutorial] Personalizando Menu e Controlando com o Mouse.

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos