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


[Carlos - Tutorial] Vamos Argumentar.

5 participantes

Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty [Carlos - Tutorial] Vamos Argumentar.

Mensagem por Carlos L. Dom 15 maio 2011, 01:31


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|
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.
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.
//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.
if (argument0 < argument1) then
{
draw_circle(x,y,50,0);
}

Agora abra o nosso objeto e no evento draw coloque o seguinte.
//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.

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


Última edição por Carlos L. em Qui 19 maio 2011, 12:06, editado 2 vez(es)
Carlos L.
Carlos L.

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por Super Games Qua 18 maio 2011, 11:42

Certamente um ótimo tutorial, e as explicações bem feitas, eu tinha dúvidas a respeito de argumentos, mas agora sei melhor o que é.(Não acredito que escrevo num game uns 50 argumentos sem saber)
Super Games
Super Games

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2800
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Java
  • Godot
  • Javascript
  • C ou C++


Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por saim Qua 18 maio 2011, 11:59

Vale acrescentar que o GM (não sei se qualquer versão) aceita chamada de argumentos como se eles fossem uma array. Tipo, usar argument0, argument[0] ou argument[1-1] não tem diferença.
Também é interessante mencionar que, num script, SEMPRE são usados 16 argumentos. Aqueles que não forem informados são considerados como 0 (zero). Então, se seu script usa 16 argumentos e você simplesmente chama o script, sem entrar com nenhum argumento, o programa não dá erro nenhum (mas os resultados podem ser bem estranhos). Isso não acontece com as funções built-ins.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por sonic luan Qua 18 maio 2011, 12:32

nota 100000000
adorei o tutorial sempre quis saber iso, e agora sei Very Happy
sonic luan
sonic luan

Games Ranking : Nota C

Notas recebidas : C-D-A-C
Data de inscrição : 28/01/2011
Reputação : 18
Número de Mensagens : 1003
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

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

http://sonicmaker.forumeiros.com/memberlist

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por Carlos L. Qua 18 maio 2011, 21:38

Super Games escreveu:Certamente um ótimo tutorial, e as explicações bem feitas, eu tinha dúvidas a respeito de argumentos, mas agora sei melhor o que é.(Não acredito que escrevo num game uns 50 argumentos sem saber)

Opa valeu por comentar e comum o cara se confundir com argumentos no começo.

saim escreveu:Vale acrescentar que o GM (não sei se qualquer versão) aceita chamada de argumentos como se eles fossem uma array. Tipo, usar argument0, argument[0] ou argument[1-1] não tem diferença.
Também é interessante mencionar que, num script, SEMPRE são usados 16 argumentos. Aqueles que não forem informados são considerados como 0 (zero). Então, se seu script usa 16 argumentos e você simplesmente chama o script, sem entrar com nenhum argumento, o programa não dá erro nenhum (mas os resultados podem ser bem estranhos). Isso não acontece com as funções built-ins.

Obrigado pela dica depois dou uma editada no tópico.

sonic luan escreveu:nota 100000000
adorei o tutorial sempre quis saber iso, e agora sei Very Happy

Valeu pela nota.
flw
Carlos L.
Carlos L.

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por sonic luan Qua 18 maio 2011, 21:40

mas eu tenho uma pergunta, pra que usar argumentos se tem as variaveis Question
sonic luan
sonic luan

Games Ranking : Nota C

Notas recebidas : C-D-A-C
Data de inscrição : 28/01/2011
Reputação : 18
Número de Mensagens : 1003
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

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

http://sonicmaker.forumeiros.com/memberlist

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por Carlos L. Qua 18 maio 2011, 21:54

sonic luan escreveu:mas eu tenho uma pergunta, pra que usar argumentos se tem as variaveis Question

Preste atenção, argumentos são usados na definição de scripts, estes geralmente aceitam até 16 argumentos. Um exemplo simples na utilização de argumentos é quando você deseja criar um script onde ele receberá por exemplo o mesmo comando umas 15 vezes (exagerado) você determina esse valor como um argumento para facilitar na interpretação e outras coisas, e só será preciso declarar esse valor uma vez na declaração do script. Esse argumento será uma constante pois seu valor não irá variar toda vez que você se referir a ele você automaticamente estará acessando aquele valor que lhe foi designado na declaração de seu script.
Não sei se consegui lhe explicar bem essa questão mais procure estudar umas engines onde possua o uso de argumentos e veja se o resultado seria o mesmo com o uso de variáveis, procure analisar os códigos que você perceberá a diferença entre o uso de um argumento e uma variável, pode não ser totalmente notável logo que se olha mais com o tempo e experiência você perceberá a diferença e a facilidade que irá lhe proporcionar ao se utilizar um argumento.
flw
Carlos L.
Carlos L.

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por saim Qua 18 maio 2011, 22:12

Você está confundindo um pouco as coisas, sonic luan. O argumento serve pra dizer ao script com o que trabalhar. Uma variável pode ser um argumento, de forma que o script fique flexível. Por exemplo, um script que desenhe uma estrela precisa do centro, raio externo, raio interno, número de lados e ângulo do primeiro lado, certo? Qual utilidade de um script que desenhe sempre a mesma estrela? Você pode criar um script que se adapte aos argumentos. Assim, se você usar as variáveis (x,y) como coordenadas do centro da estrela, ao invés de valores numéricos, a estrela seguirá o objeto. Porém, se usar (room_width-x, room_height-y) no MESMO script, a estrela ficará na posição da room oposta à do objeto. Os argumetos, no primeiro caso são "x" e "y". No segundo, os argumentos são "room_width-x" e "room_height-y".
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por PedroX Qua 18 maio 2011, 22:25

Muito bom tutorial.
Você mostrou de uma forma clara essas funções.
O saim tambem lembrou uma coisa importante sobre os argumentos.
Continue assim.

Até mais!

_________________


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 : [Carlos - Tutorial] Vamos Argumentar. 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

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por Carlos L. Qui 19 maio 2011, 11:45

Pedro Henrique escreveu:Muito bom tutorial.
Você mostrou de uma forma clara essas funções.
O saim tambem lembrou uma coisa importante sobre os argumentos.
Continue assim.

Até mais!
Obrigado minha intenção era esclarecer mais de uma forma clara o que era argumentos.

Agora sobre o tópico adicionado as observações citadas pelo usuário saim. flw
Carlos L.
Carlos L.

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por saim Qui 19 maio 2011, 12:02

Carlos L., do jeito que você colocou lá, fica a impressão que o game maker aceita argumentos como arrays de 2 dimensões. Não sei se isso é verdade (acho que não é). O que eu quis dizer com o exemplo do argument[1-1] é que é possível escolher qual argumento utilizar a partir de equações.

Por exemplo (um exemplo tosco) você tem um script pra desenhar alguma coisa. Os 5 primeiros argumentos são as cores que você quer que sejam escolhidas aleatoriamente (sim, é possível fazer isso só com um argumento, mas a questão não é essa). Daí, você pode escrever:
Código:
arg=floor(random(5))
cor=argument[arg]
(e continuar o script a partir daí)
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por Carlos L. Qui 19 maio 2011, 12:08

saim escreveu:Carlos L., do jeito que você colocou lá, fica a impressão que o game maker aceita argumentos como arrays de 2 dimensões. Não sei se isso é verdade (acho que não é). O que eu quis dizer com o exemplo do argument[1-1] é que é possível escolher qual argumento utilizar a partir de equações.

Por exemplo (um exemplo tosco) você tem um script pra desenhar alguma coisa. Os 5 primeiros argumentos são as cores que você quer que sejam escolhidas aleatoriamente (sim, é possível fazer isso só com um argumento, mas a questão não é essa). Daí, você pode escrever:
Código:
arg=floor(random(5))
cor=argument[arg]
(e continuar o script a partir daí)

Corrigi saim, obrigado de novo e qualquer erro me avise. flw
Carlos L.
Carlos L.

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios : [Carlos - Tutorial] Vamos Argumentar. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Carlos - Tutorial] Vamos Argumentar. Empty Re: [Carlos - Tutorial] Vamos Argumentar.

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


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