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
» Colisões não funcionando
por RastaMaan Ontem à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Ontem à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

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

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

» 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


[Carlos - Tutorial] Vamos Argumentar.

5 participantes

Ir para baixo

Carlos - [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 - [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 - [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 : 2799
Prêmios : Carlos - [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
  • C ou C++


Ir para o topo Ir para baixo

Carlos - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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 - [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