Página 1 de 1

[PROG] [Carlos - Tutorial] Vamos Argumentar.

Enviado: Qui Abr 28, 2016 11:05 pm
por Tutoriais & Aulas
Autor original: Carlos L.

Nome: Vamos Argumentar.
Descrição: Neste tutorial aprenderemos como funciona o sistema de argumentos do GM.
Nível de dificuldade: Iniciante.
Requerimentos: Game Maker 8 (Creio que qualquer versão do GM que utilize argumentos).

Fala galera, vou abordar um tema que creio que já quebrou a cabeça de muita gente que são os argumentos.
Quem nunca pegou o GM foi lá fazer seu código se deparou com um 'argument' e se auto perguntou: 'Para que isso serve?', ou então, 'Para que isso se eu posso usar variáveis?', quem nunca se perguntou posso dizer uma coisa 'Meus parabéns, você é um argumentador', quem já se perguntou, preste atenção 'SE PERGUNTOU' eu digo 'Parabéns você aprendeu a argumentar.', e para quem ainda se pergunta 'Calma pequeno padawan, para tudo se acha uma utilidade.', com os argumentos não poderia ser diferente por incrível que pareça eles servem para alguma coisa, então vamos ver sua utilidade.

Como todos devem saber o sistema de scripts do Game Maker trabalha com argumentos, que são nada mais, nada menos do que as instruções necessárias para a execução de seus códigos, mas nem sempre é necessário um script possuir argumentos para poder funcionar. |Look Down|

Código: Selecionar todos

instance_create(x,y,obj); /* Possui três argumentos onde: argument0 := x,
                                                          argument1 := y;
                                                          argument2 := obj.*/
                                                          
instance_destroy(); /* Não possui nenhum argumento ou seja e uma função que
trabalha sozinha sem ser necessário chamar outro valor. */
Se você prestou atenção nos exemplos você pode observar as duas situações que falei acima, onde na primeira são necessários um certo número de argumentos para poder executar uma função, já na segunda situação o script funciona de forma totalmente independente sem a necessidade de argumentos.

Se você conseguiu entender essa parte entender o que são argumentos é moleza, pois aqueles argumentos que você pode incluir em seus jogos não são nada mais nada menos do que os comandos de seus scripts.
Vamos fazer um exemplo prático para entender melhor como eles funcionam, nesse exemplo iremos criar um script que movimentará nosso player.
Crie um objeto de-lhe um nome e uma sprite qualquer, feche ele e crie um script e de-lhe o nome de p_movimentacao e dentro dele criaremos nosso script de movimentação, mas no lugar das teclas iremos usar argumentos.

Código: Selecionar todos

if (keyboard_check(argument0)) then
    {
        hspeed = 5;
    }
        else
    {
    if (keyboard_check(argument1)) then
    {
        hspeed = -5;
    }
        else
    {
        hspeed = 0;
    }
}
Observe que no lugar das teclas que seriam pressionadas eu usei um argumento para cada movimento, onde seria uma tecla para movimentar para a direita eu usei o argument0 e onde seria a da esquerda o argument1.
Agora você deve estar se perguntando como você irá mover nosso player se não declarou as teclas.
Isso é facim, facim, preste atenção: Como falei acima os scripts do GM precisam de argumentos para poder funcionar (nem sempre), então o que faremos é simples simplesmente no momento em que declararmos nosso código iremos dar valores aos argumentos, preste atenção.
Agora abra o nosso objeto criado e no seu step coloque.

Código: Selecionar todos

//nome_script(argument0,argument1);
p_movimentacao(vk_right,vk_left);
Agora teste, se você fez tudo direitinho observou que ao apertar as teclas para direita e esquerda ele foi para suas respectivas direções, isso foi feito por que ao declarar nosso script feito você deu valor aos argumentos, caso você não desse valor algum para seu script ele simplesmente iria executar o primeiro da ordem que seria o argument0 sem sofrer nenhuma alteração caso você precionasse qualquer tecla, fazendo com que nosso player andasse eternamente para a direita.

Perceberam como é fácil a utilização de argumentos, se não darei mais um exemplo básico, e como no anterior crie um objeto com um nome qualquer agora não necessitaremos de sprite, agora crie um script com o nome d_circulo e coloque o seguinte código dentro dele.

Código: Selecionar todos

if (argument0 < argument1) then
{
    draw_circle(x,y,50,0);
}
Agora abra o nosso objeto e no evento draw coloque o seguinte.

Código: Selecionar todos

//nome_script(argument0,argument1);
d_circulo(object_index.x,room_width/2);
Pronto agora coloque o objeto na primeira metade da room, observe que ele desenha um circulo, agora pegue e coloque ele na segunda metade da room, se você fez certo ele não desenhará nenhum circulo pois segundo nosso código ele só irá desenha-lo se estiver na primeira metade da room.

OBS: O Game Maker só aceita 16 argumentos que começam no argument0 e termina no argurment15.

[/i]
Observações dadas pelo usuário saim

  • O game maker aceita a chamada de argumentos como se eles fossem arrays.
    EX .: argument[0], argument[0 - 0];
  • Em um script sempre serão usados 16 argumentos, independente deles terem sido chamados ou não.
  • E aqueles que não forem chamados serão considerados 0.


Então é isso ai chego ao fim espero que a galera goste, ou que eu tenha tirado a dúvida de alguém e qualquer coisa qualquer equivoco meu no tutorial e só avisar.
:flw: