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


[Tutorial] Scripts - Willy

2 participantes

Ir para baixo

[Tutorial] Scripts - Willy Empty [Tutorial] Scripts - Willy

Mensagem por Willy 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:
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.
[Tutorial] Scripts - Willy 01
       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.
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : [Tutorial] Scripts - Willy Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

[Tutorial] Scripts - Willy Empty Re: [Tutorial] Scripts - Willy

Mensagem por PedroX Ter 17 Dez 2013, 22:28

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

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : [Tutorial] Scripts - Willy Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

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