Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Ontem à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
11 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 10 Visitantes

CRP-Max

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

[Tutorial] Scripts - Willy

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Tutorial] Scripts - Willy

Mensagem por Willy em Qua 11 Dez 2013, 23:11

Olá amigos da GMBR! Trago para vocês mais um tutorial, e dessa vez, falando sobre scripts! O tutorial é compatível com qualquer versão do GM que suporte scripts.  É recomendado que você tenha ao menos um conhecimento básico de GML. Para acompanhar o tutorial, primeiro, crie um novo projeto no Game Maker, crie um objeto chamado obj_draw e coloque os seguintes códigos:
Códigos:
Create:

Código:
//HP inicial
HP = 100;
HP_Max = 100;
Step:

Código:
//Reduz o HP
HP -= 1;
Draw:

Código:
//Desenha o Healthbar
draw_healthbar(16,16,128,32,((HP/HP_Max)*100),c_black,c_red,c_lime,0,true,true);
Sem mais delongas, vamos começar!

Scripts

O que é:
       No Game Maker, um script é um trecho de código que você pode dar um nome e definir argumentos para usar em qualquer objeto do seu jogo. Poucas pessoas sabem, mas todas as funções do GM são scripts.

Quando usar:
       Se você já está habituado a usar GML em seus jogos, quando entender o conceito de um script você provavelmente usará com bastante frequência. Você pode, por exemplo:
- Criar novas funções.
- Usar o mesmo código para vários objetos, economizando tempo e facilitando a manutenção.
- Fazer cálculos e retornar um valor.
       Estes foram alguns exemplos. Não posso listar toda a utilidade de um script, pois elas são incontáveis e sua forma de uso varia de programador para programador.

Como criar:
       Antes de programarmos nosso script, primeiro, devemos criá-lo.  Para isso, crie um novo script clicando em seu ícone na barra de ferramentas.

       Em seguida, uma tela igual ao "creation code" aparecerá.  Agora, precisamos dar um nome ao nosso novo script, fazemos isso digitando o nome na caixa de texto "Name". Por boas práticas, recomendo que sempre inicie o nome com scr_ para evitar conflitos entre os recursos do jogo. Neste exemplo, chamaremos de scr_morre.
Spoiler:

Programando um exemplo:
       Para usar como exemplo, criaremos um script que faz um objeto se destruir quando estiver sem HP.
Spoiler:
       Este exemplo não usa argumentos e usa uma variável local chamada “HP”. Essa variável não é do script, mas sim, do objeto que o chamou. Portanto, se o objeto não tiver essa variável, vai dar erro. Essa pratica não é muito recomendada, pois vai limitar o script a determinados objetos.

Como usar:
       Depois de criado, usar um script é bem simples... No "creation code" do objeto que você quer usar o script, simplesmente digite o nome que você deu e passe os argumentos necessários entre os parênteses separando-os com vírgulas. Faça isso no na ultima linha do step do obj_draw.
Spoiler:
       Feito isso, execute o programa e veja que a barra de HP vai esvaziar lentamente. Quando estiver completamente vazia, a barra vai sumir, pois o obj_draw vai se destruir conforme programamos no script.

Argumentos:
       Muitos que tentam aprender a usar scripts não conseguem entender o que são argumentos... Essas mesmas pessoas usam argumentos o tempo todo e não sabem. Como foi dito anteriormente, toda função no GM é um script, logo, eles tem argumentos. Por exemplo, a função instance_create:
Spoiler:
Nesta função, temos três argumentos: argument0 (x), argument1(y) e o argument2(obj), sendo que, o script vai interpretar argument0 como 0, argument1 como 0 e argument2 como obj_draw. Ou seja, para o script, os argumentos são os valores que passamos quando o chamamos. É importante ressaltar que os argumentos, no ato de sua chamada, serão sempre correspondentes a sua posição, então, o primeiro sempre será o argumento 0, o segundo sempre o argumento 1, e assim por diante. Podemos usar de nenhum a até 16 argumentos (argument0 – argument15).

Aplicando argumentos:
       Agora que sabemos o que são argumentos, vamos editar o scr_morre e aplicar o novo conceito aprendido. Pra começar, vamos substituir o HP da condição do script por argument0, permitindo que outros objetos usem o script, mesmo que não tenham a variável HP.
Spoiler:
       Se você testar o jogo agora, perceberá que a barra vai sumir instantaneamente. Isso acontece porque não informamos para o script qual é o valor do argument0, logo, por padrão, o argument0 valerá zero. Para corrigir isso, devemos adicionar o argumento na chamada do script que está no step do obj_draw.
Spoiler:
       Testando o jogo, o script funcionará como o planejado. Agora, vamos encaixar mais um argumento nesse script, permitindo maior flexibilidade na hora de usar. Trocaremos a condição do script para executar a ação quando o argument0 for menor ou igual ao argument1.
Spoiler:
       Ao executar o jogo, ainda sim vai dar certo, pois como não passamos o valor do argument1, o mesmo valerá zero, ou seja, mantivemos a condição original. Para visualizarmos melhor, vamos colocar um valor para o argument1 na chamada do script e testar.
Spoiler:
      Testando o jogo, a barrinha vai sumir quando o HP for menor ou igual a 50. Com isso, sabemos que nosso script está funcionando perfeitamente.


Retornando Valores:
      Até o momento, só usamos scripts para executar ações, porém, em muitas situações nós usamos os scripts para fazer cálculos e nos retornar um resultado. Para tal, usamos a função return. Quando um script usa return, significa que o mesmo retorna um resultado que pode ser armazenado em uma variável ou usado diretamente. A função instance_create, por exemplo, além de criar um objeto em determinado lugar, ele retorna o ID da instância criada para que possamos usar depois.
Spoiler:
      Neste exemplo, armazenamos o ID da instancia criada na variável “obj”.

Usando return:
      No obj_draw, no evento draw, existe um código que serve para desenhar a barrinha. Repare que existe no argumento correspondente ao "amount" uma pequena equação matemática que simplesmente faz a famosa regra de três. Apesar de não ter muita necessidade, transformaremos a equação em um script para demonstrar o uso do return.
Spoiler:
      Vamos praticar todos os conceitos que vimos até aqui. Crie um novo script e dê o nome de scr_amount. Agora, coloque a equação neste script, substituindo HP por argument0. Depois disso, antes da equação e na mesma linha, acrescente o return, indicando que queremos que o script retorne o resultado.
Spoiler:
      Antes de testar, devemos chamar o script e passar os argumentos no draw do obj_draw. Como foi dito antes, o valor que o script retornou pode ser armazenado em uma variável ou usado diretamente, portanto, poderemos usar de duas maneiras:
      Armazenando em uma variável:
Spoiler:
      Usando diretamente:
Spoiler:
      É importante ressaltar um detalhe muito importante sobre o uso do return. Quando usado, todo o código que estiver depois dele não será executado, pois o script se encerrará. Veja o exemplo:
Spoiler:
      Se o argument0 valer 0, então o script vai retornar “Michael”. Se o argument0 valer 1, ele vai retornar “Willy” mas não vai executar o instance_destroy(). Se o argument0 valer 2, ele vai alterar a posição x para 10 e vai retornar “Jovem Maker”.  O script só retornará “GMBR” se argument0 valer qualquer outro valor, ou seja, se o case 0,1 ou 2 seja executado, o script não retornará GMBR.

Dica:
      Quando estamos digitando os argumentos de uma função, na parte inferior do creation code aparece o nome da função e o argumento que está sendo digitado em negrito.
Spoiler:
      Isso facilita muito, pois nem sempre sabemos quantos argumentos uma função/script tem e nem o que cada argumento corresponde. A partir da versão GM:S , é possível fazer o mesmo com script. Para isso, na primeira linha do script coloque três barras (///)e a forma como você quer que seja exibido. Veja por exemplo, o scr_morre:
Spoiler:
      Feito isso, quando estivermos preenchendo os argumentos, vai ficar assim:
Spoiler:
      Provavelmente você não sabia dessa. Eu também não! Quem me apresentou isso foi o Gonçalves, portanto, palmas para ele!

É isso ai galera! Este foi mais um tutorial. Espero que tenham gostado! Dúvidas, críticas, perguntas e sugestões são bem-vindas!
Até mais! blz
Em breve, este tutorial será feito em videoaula.
avatar
Willy

Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1832
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1

Ver perfil do usuário http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Tutorial] Scripts - Willy

Mensagem por PedroX em Ter 17 Dez 2013, 22:28

Um ótimo tutorial! Muito bem explicado. Gostei de aprender sobre as 3 barras.

PedroX

Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6036
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum