Conectar-se
Quem está conectado
14 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 14 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 28/09/2013
Número de Mensagens : 21
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

[Script] Como o argument vale algo?

em Qua 02 Out 2013, 14:57
Olá amigos do fórum,sou iniciante e estou aprendendo programação do Game Maker e estou com dúvida no argument,como ele pode valer algo sem ao menos ser declarado?,por exemplo nesse seguinte código  da aula do Alex FC:

//calcula_imc(peso,altura)
imc=argument0/(argument1*argument1)
return imc

Como o programa "adivinha" que argument0 é peso e o argument1 é altura? sem ao menos ter sido declarado que são realmente isso?Como eu sou iniciante queria pedir a ajuda de vocês experientes para me ajudarem a entender..Obrigado desde-já?
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: [Script] Como o argument vale algo?

em Qua 02 Out 2013, 15:10
Na verdade, esses "arguments" são como variáveis, mas não são declaradas. ..

Quando se chama um script, fazemos da seguinte forma:
Código:
nome_script(valor0,valor1,valor2);
Pro script, vai estar assim:
Código:
nome_script(argument0,argument1,argument2);
Em outras palavras, o valor dos argumentos foram definidos no momento em que você os chamou em um objeto.

Dúvidas é só falar. blz
avatar
Data de inscrição : 28/09/2013
Número de Mensagens : 21
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: [Script] Como o argument vale algo?

em Qua 02 Out 2013, 15:18
Mais se essas tais variáveis não são declaradas como o programa sabe o valor delas?
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: [Script] Como o argument vale algo?

em Qua 02 Out 2013, 15:29
Reputação da mensagem: 100% (1 votos)
Pense da seguinte forma, o argument0 até o argument12 (12 é o máximo, se não me engano...) já foram declaradas em algum lugar, porém, sem valor algum, só aguardando receberem um valor...

Quando você chama um script, os valores são distribuídos em "ordem de chegada". Uma forma de você entender isso, é a seguinte:
A função instance_create(x,y,obj) na verdade É UM SCRIPT! Sendo que x é o argument0, y é o argument1 e obj é o argument2.

Ou seja, quando escrevemos:
instance_create(16,96,obj_personagem)
16 é o argument0
96 é o argument1
obj_personagem é o argument2

Perceba que o valor dos arguments depende da ordem em que forem chamados.
avatar
Data de inscrição : 28/09/2013
Número de Mensagens : 21
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: [Script] Como o argument vale algo?

em Qua 02 Out 2013, 15:59
Agora ficou mais claro,mais só uma dúvida por exemplo:
Se tivessem 2 objetos e em cada um desses objetos teria um código:

No primeiro objeto: instance_create(10,10,obj_player)
No segundo objeto: instance_create(20,20,obj_inimigo)

E eu fosse escrever em um Script com o seguinte código
X=argument0*argument2

Bom ai eu queria saber como o Game Maker ia saber qual era o argument0,argument1 pois existem dois códigos nos objetos que ambos são scripts,então o Então o que ia acontecer?
O Argument0 é o 10? ou o 20?
O Argument1 seria 10 ou o 20?

Eu só queria saber isso.. Obrigado desde já...
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [Script] Como o argument vale algo?

em Qua 02 Out 2013, 16:19
Reputação da mensagem: 100% (1 votos)
O argument só existe dentro do script. Ou seja, o script seria executado duas vezes, e em cada vez o argument2 teria um valor diferente.
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: [Script] Como o argument vale algo?

em Qui 03 Out 2013, 15:07
É local, é usado dentro do obj.
É como se vc chamasse a função,q tambem é um script, instance_create(x,y,obj), como seu exemplo ai em cima, vai rodar o script em cada um dos objs, mas de forma diferente, pq pra um vc deu valor 10 para x e y e para o outro deu valor 20 para x e y, entaum vão rodar o script em cada um e irá criar 2 objs, um nas coordenadas 10,10 e outro nas coordenadas 20,20.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Script] Como o argument vale algo?

em Qui 03 Out 2013, 16:24
arugment0, argument1, etc. são variáveis built-in do tipo "var", ou seja, elas evaporam assim que o script termina. Quando o próximo script for chamado, ele não tem conhecimento de nada do que aconteceu nos outros scripts. Só vai poder usar argumentos que forem declaradas quando ele for chamado.

Só que o game maker é uma mãezona que te permite usar argumentos que NÃO forem declarados. Mas aí, qual o valor desses argumentos? Bom, na falta de uma bola de cristal, usa-se valores "default". Assim, qualquer argumento não declarado vale zero.
Então se você escrever um código que chama dois scripts em seguida, desse jeito aqui:
Código:
script1(0, 1, 2, 3);
script2();
O valor de argument0 nos dois scripts vai ser "0", por motivos diferentes. O valor de argument1 vai ser "1" no primeiro script e "0" no segundo. Só que você provavelmente não vai usar nenhum argumento no segundo script, porque você é um cara esperto e prefere declarar seus zeros, pra não esquecer de declarar algum valor diferente, depois. Logo, se não declarou nenhum argumento, é porque o script não usa argumentos.
Note que esses valores não fazem sentido até que você saiba o que tem dentro do script. Portanto, é uma boa começar o script com uma linha de comentário, indicando o que significa cada argumento, como no exemplo do primeiro post. O primeiro argumento é um número real que representa o peso, o segundo argumento é um número real que representa a altura, o script faz umas contas e retorna um valor que pode ser usado ou perder-se no limbo, inutilizando o script.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum