Dicas gerais de nivel intermediario em gamemaker

    Compartilhe
    avatar
    LucasMan
    Admin
    Admin

    Masculino
    Número de Mensagens : 99
    Advertencias : 0%

    Habilidade :
    Reputação Reputação : 2

    Dicas gerais de nivel intermediario em gamemaker

    Mensagem por LucasMan em Qua 23 Jul - 16:20

    Nivel:Intermediario
    gm5 gm6 gm7
    Créditos especiais à: hiperbite,Mathy220 e LucasMan

    Aqui estão alguns comandos básicos sobre GML, vejam:

    Comando básicos:

    if: Esse código serve para quando você for fazer alguma coisa, ou quando acontecer alguma coisa. EX:
    Código:
    if keyboard_check(vk_up)
    room_goto(room2) //esse é um exemplo, quando a seta para cima for pressionada irá para a room2

    var: Esse código serve para criar uma variável, veja:
    Código:
    var_(nome da variável)=true

    score: Bom, acho que não é preciso dizer nada, esse código define a pontuação. Ex:
    Código:
    //aqui estamos inserindo 10 pontos
    score+=10

    lives: É a mesma coisa de score, só que aqui são as vidas

    false
    : Esse código é como uma execusão falsa, exemplo:
    Código:
    //Aqui será pressionada a seta para direita, então a var_parado será falsa e a var_direita será verdadeira
    if keyboard_check(vk_right) and not keyboard_check(vk_left)
        {
        var_parado = false
        var_direita = true
        }

    gravity: O nome já diz, esse comando define a gravidade, veja um exemplo:
    Código:
    gravity = 0.75

    sprite_index: Esse comando mostra uma sprite, veja um exemplo:
    Código:
    // esse é apenas um exemplo, não tente usar esse código
    if keyboard_check(vk_down)
    sprite_index = spr_player

    instance_destroy(): Esse comando é para destruir um objeto, veja um pequeno exemplo:
    Código:
    // caso a seta para esquerda seja pressionada o objeto que está executando esse código será destruído
    if keyboard_check_pressed(vk_left)
    instace_destroy();

    instance_create: Comando utilizado para criar uma instância (objeto)

    image_speed: Controle da velocidade da imagem, veja:
    Código:
    image_speed=0.25

    Comandos do teclado:

    Setas:

    keyboard_check(vk_up)// Seta para cima
    keyboard_check(vk_down)// Seta para baixo
    keyboard_check(vk_left)// Seta para a esquerda
    keyboard_check(vk_right)// Seta para a direita
    keyboard_check(vk_space)// Tecla barra de espaços

    Letras:
    (keyboard_check(ord('X'))// para você mudar as teclas apenas mude a letra X para a tecla que você deseja

    Outros

    hspeed*=-1: esse código serve para inverter uma velocidade. Exemplo:
    Código:
    //crie um evento colison do player com a parede e escreva o comando citado acima.

    draw_text
    : Escreve um texto, veja um exemplo:
    Código:
    // fica escrito time na room
    draw_text(280,25,time);

    view_xview e view_yview: Esse código serve para uma sprite seguir a tela. Ex:
    Código:
    // o objeto que está executando esse código irá  seguir a room.
    view_xview+100
    view_yview+100

    Já disse muitos comandos, agora vamos criar alguns códigos:

    Contato com o chão:
    Código:
    // esse código é para o contato do player com o chão, a velocidade muda para 0
    move_contact_solid(direction,8)
    vspeed = 0
    Código:
    //código bem simples, crie um evento colision de um inimigo com um bloco.
    if sprite_index=spr_inimigo_esquerda
    {
    sprite_index=spr_inimigo_direita;
    }
    else
    {
    sprite_index=spr_inimigo_esquerda;
    }
    Código:
    // muda para a room0

    room_goto(room0)

    Agora aqui vai umas dicas para criação de inimigos.

    1º- Inimigo comum

    Vamos lá pessoal para a primeira matéria, não sou muito bom com explicações mas vou tentar, vamos começar fazendo a AI de um inimigo para seu jogo, esse inimigo é aquele clássico que anda de um lado para o outro.

    Primeiro crie as sprites do inimigo, uma chamada " inimigo_esquerda" e outra chamada " inimigo_direita" (Sem aspas).Pois se você escrever algo errado o script vai acusar um erro e o jogo não vai funcionar corretamente, Agora, crie um bloco chamado "Wall" ou como quiser, esse bloco sera sólido e terá que ficar invisível, então nas propriedades do bloco desmarque a opção visible (para que ele não apareça no jogo ) pois ele será o bloco que fará seu inimigo bater e voltar.

    Agora que criamos os sprites vamos para a segunda parte, vamos criar um objeto para o inimigo, coloque o nome que quiser nele e em Create coloque esses códigos pois as variáveis vão ser ativadas no inicio do objeto, pois Create é o inicio das ações do objeto:

    Código:
    Gravi_dade = true // você pode dar o nome que quiser para a variável
    pa_rado = true
    direi_ta = true
    velo_cidade = 4

    Código:
    image_speed=0.55 // você também pode mudar a velocidade, a que te agrada melhor,ele muda a velocidade dos sprites

    Clique na seta virada para a direita, em Speed coloque 3 e não marque a opção Relative, agora clique em Ok.

    Crie um evento Step e escreva o código:

    Código:
    //AQUI VOCÊ DEFINE A GRAVIDADE
    if place_free(x,y+1)
      {
      gravi_dade = false
      gravity = 0.75
      }
    else
      {
      gravi_dade= true
      gravity = 0
      }


    //LIMITAR VELOCIDADE DE QUEDA
    if (vspeed > 10) {vspeed = 10}

    Já estamos no final, crie um evento colision com o Wall e escreva:

    Código:
    if sprite_index=spr_inimigo_direita
    {
    sprite_index=spr_inimigo_esquerda;
    }
    else
    {
    sprite_index=spr_inimigo_direita;
    }

    Logo depois:

    Código:
    hspeed*=-1;//isso inverte a velocidade ao bater no Wall,( hspeed )esse código é para inverter somente na horizontal.

    Agora que terminamos vamos criar o objeto chão, pois se não tiver esse objeto o seu inimigo vai cair e sumir na tela, agora crie um evento colision do inimigo com o objeto chao e escreva:

    Código:
    move_contact_solid(direction,8)
    vspeed = 0

    2º- inimigo com IA

    Com esse código o inimigo ira pular quando você se aproximar dele, ele também pode ser usado para outras coisas como atirar,segir o personagem mas isso vou explicar mais abaixo.

    IA básico:

    Código:
    if distance_to_object(obj_player)<37     
      {
      vspeed=-14
      }

    IA simples:

    Evento Create:

    Código:
    alarm[0]=round(random(90)+90)

    Alarm0:

    Código:
     
    //aqui o seu inimigo atira e toca o som do tiro ao obj_player se aproximar.
    if distance_to_object(obj_player)<150
    {
    sound_play(tiro)
    instance_create(x-1,y,bala);
    }
    alarm[0]=60

    Se você quiser que o inimigo faça todas as ações juntas faça o seguinte crie o mesmo código de antes, esse:

    Código:
    if distance_to_object(obj_player)<37     
      {
      vspeed=-14
      }

    Agora um efeito simples de fade sem usar transição de rooms...

    ara fazer um efeito de escurecer/clarear a tela manualmente basicamente vc precisará desenhar um retângulo do tamanho da tela e mudar a transparência dele.

    Para começar, crie um obj que irá controlar o efeito. Vou chama-lo de obj_controle. Nesse oj, adicione um evento create e crie duas variaveis para indicar o nível de opacidade e se o efeito está ligado ou não.
    Código:
    opacidade=1;
    ligado=0;

    Obs: O nível máximo de opacidade é 1, onde estará com toda a cor, quanto menor o valor, mais transparente.

    Agora vamos trabalhar no evento draw para desenhar nosso retângulo...
    Iremos usar as seguintes funções:

    • draw_set_alpha(nivel) - É usada para alterar o nível de transparência do que está sendo desenhado;
    • draw_rectangle(x1,y1,x2,y2,lina) - Essa função irá desenhar o retângulo. X1 e Y1 indicam a posição do retângulo na tela, X2 e Y2 indicam o tamanho(largura e altura, respectivamente) e linha indica se somente uma linha deverá ser desenhada, sem preenchimento;
    • draw_set_color(cor) - Usada para definir a cor do desenho.
    Conhecendo as funções podemos começar o código do evento draw...
    Código:
    draw_set_alpha(opacidade);
    draw_set_color(c_black);
    draw_rectangle(0,0,640,480,0);
    Primeiro definimos o nível de transparência usando a variável que criamos antes, depois definimos a cor do desenho para preto e finalmente desenhamos o retângulo. Repare que o tamanho usado nesse exemplo é 640x480, lembre-se de usar o tamanho da tela do seu jogo.

    Agora temos que criar um jeito de ligar e desligar a transparência, para testar, adicione dois eventos key press, eu usei A e S para ligar e desligar, respectivamente.
    Evento A:
    Código:
    ligado=1;
    Evento S:
    Código:
    ligado=0;

    Já definimos o desenho e um sistema de teste para ligar e desligar, mas é agora que iremos criar o efeito de transição fazendo com que fique transparente aos poucos. Adicione um evento step e nele coloque as seguintes condições.
    Código:
    if ligado==1 && opacidade>0 then //se o efeito estiver ligado e a opacidade for maior que zero)
    {
    opacidade-=0.1;
    }
    if ligado==0 && opacidade<1 then//se o efeito estiver desligado e a opacidade for menor do que 1
    {
    opacidade+=0.1
    }
    É bem simples, apenas checa se o sistema está ligado ou não e soma ou subtrai o valor da opacidade aos poucos para dar o efeito de transição.

    Obrigado pela atenção e desfrutem :lol:
    avatar
    rodrigo1434
    Admin
    Admin

    Masculino
    Idade : 24
    Número de Mensagens : 782
    Advertencias : 0%

    Reputação Reputação : 14

    Re: Dicas gerais de nivel intermediario em gamemaker

    Mensagem por rodrigo1434 em Qui 24 Jul - 18:53

    valeu Lucas por ajudar fico feliz por essa ótima matéria
    :lol:
    avatar
    Cardume
    Membro
    Membro

    Masculino
    Idade : 18
    Número de Mensagens : 139
    Advertencias : 25%

    Habilidade :
    Reputação Reputação : -2

    Re: Dicas gerais de nivel intermediario em gamemaker

    Mensagem por Cardume em Seg 28 Dez - 16:42

    vlw por ajudar ein tem bastant codigo ai vlw mesmo tava procurando codigos :D
    avatar
    ArandyIlhay
    Ocasional
    Ocasional

    Masculino
    Idade : 16
    Número de Mensagens : 325
    Advertencias : 0%

    Habilidade :
    Reputação Reputação : 1

    Re: Dicas gerais de nivel intermediario em gamemaker

    Mensagem por ArandyIlhay em Sex 23 Abr - 7:55

    gente eu não so bom em codico mais coloco nos meus jogos tambem então eu gostei dessa ajuda ta bom
    avatar
    Hellz
    Membro
    Membro

    Masculino
    Idade : 21
    Número de Mensagens : 54
    Advertencias : 0%

    Habilidade :
    Reputação Reputação : 0

    Re: Dicas gerais de nivel intermediario em gamemaker

    Mensagem por Hellz em Ter 20 Jul - 19:25

    cara, foi a melhor explicação de codes q eu achei pela net...
    nota 10

    Conteúdo patrocinado

    Re: Dicas gerais de nivel intermediario em gamemaker

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex 15 Dez - 6:08