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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[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 : 6086
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