Entrar
Últimos assuntos
» player não consegue andarpor 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
mistério sem "return"
+3
Tiago Lima
Mr.Brum
saim
7 participantes
Página 1 de 1
mistério sem "return"
Isso não é uma pergunta, por isso não coloquei em perguntas e respostas. É mais uma brincadeira pra provocar a moçada.
Como todos sabem (e, se não sabem, tratem de procurar saber), ao escrevermos um script, podemos colocar a instrução "return". Ela faz com que o script retorne o que quer que exista dentro da função, de modo que podemos armazenar esse valor numa variável. Muito útil pra scripts que calculam coisas.
Agora, e se NÃO usarmos return? O script não retorna nada, certo?
CERTO?
Então tente o seguinte:
- inicie um novo projeto
- crie um objeto
- coloque, no draw event desse objeto:
- coloque o objeto na room e rode.
Não está impressionado? Tá bom.
- vá no script
- digite "random(100)". Só isso, sem nenhum "return", sem nenhum "v = ".
- rode o projeto.
AINDA não está impressionado? Você tem nervos de aço!
A explicação NÃO está no manual do game maker.
Como todos sabem (e, se não sabem, tratem de procurar saber), ao escrevermos um script, podemos colocar a instrução "return". Ela faz com que o script retorne o que quer que exista dentro da função, de modo que podemos armazenar esse valor numa variável. Muito útil pra scripts que calculam coisas.
Agora, e se NÃO usarmos return? O script não retorna nada, certo?
CERTO?
Então tente o seguinte:
- inicie um novo projeto
- crie um objeto
- coloque, no draw event desse objeto:
- Código:
v=5;
v=nada();
draw_text(20, 20, string(v));
- coloque o objeto na room e rode.
Não está impressionado? Tá bom.
- vá no script
- digite "random(100)". Só isso, sem nenhum "return", sem nenhum "v = ".
- rode o projeto.
AINDA não está impressionado? Você tem nervos de aço!
A explicação NÃO está no manual do game maker.
Última edição por saim em Qua 23 Nov 2011, 14:37, editado 2 vez(es)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: mistério sem "return"
lol.............
parece até um bug.
No começo achei até normal,mas quando coloquei "random" ele ficou "retornando" a valores Oo
Realmente,tenso '-'
A razão deve ser por ao invés de executar a variável,fica retornando ao script....a explicação disso eu não faço a minima ideia...
perguntem aos universitários
parece até um bug.
No começo achei até normal,mas quando coloquei "random" ele ficou "retornando" a valores Oo
Realmente,tenso '-'
A razão deve ser por ao invés de executar a variável,fica retornando ao script....a explicação disso eu não faço a minima ideia...
Convidad- Convidado
Re: mistério sem "return"
v recebe o valor do script: random(100) ...
Sendo assim, ocorre a ação de random(100), e sua resposta é atribuída para v... Os scripts do game maker, deveriam ser equivalentes às funções nas linguagens de programação,onde a maioria dos objetivos é o retorno delas...
Porém eu acho que eles funcionam simplesmente como uma forma de deixar seu código mais coeso e funcional... simplesmente ele faz com que ao chegar na chamada do script,incorporar aquele script ao script que o chama,justo naquele ponto... daí não precisaria haver return para alcançar esse resultado...
*se é que alguém me entende.
Sendo assim, ocorre a ação de random(100), e sua resposta é atribuída para v... Os scripts do game maker, deveriam ser equivalentes às funções nas linguagens de programação,onde a maioria dos objetivos é o retorno delas...
Porém eu acho que eles funcionam simplesmente como uma forma de deixar seu código mais coeso e funcional... simplesmente ele faz com que ao chegar na chamada do script,incorporar aquele script ao script que o chama,justo naquele ponto... daí não precisaria haver return para alcançar esse resultado...
*se é que alguém me entende.
Re: mistério sem "return"
É interessante, é como se a ultima função ou operação executada que retorna algum valor, automaticamente vira o retorno do script.
Por exemplo eu escrevi no script:
O resto deixei igual o que você falou, e o script retornou '12'.
Eu acho que deve ser mais alguma daquelas características do Game Maker pra tornar GML fácil, nunca vi uma linguagem como uma sintaxe tão flexível!!! (e louca )
EDIT__
Eu consegui lhe entender, mrbrum22, você acha que o script é agregado ao código principal no exato local onde é chamado, vai saber...
Por exemplo eu escrevi no script:
- Código:
la = 2
aiaiai = 2 + 10; //2 + 10 retorna 12
O resto deixei igual o que você falou, e o script retornou '12'.
Eu acho que deve ser mais alguma daquelas características do Game Maker pra tornar GML fácil, nunca vi uma linguagem como uma sintaxe tão flexível!!! (e louca )
EDIT__
Eu consegui lhe entender, mrbrum22, você acha que o script é agregado ao código principal no exato local onde é chamado, vai saber...
Última edição por tblima123 em Ter 06 Dez 2011, 19:44, editado 4 vez(es)
Re: mistério sem "return"
Eu não sei a resposta com certeza, tirei isso de uma discussão em outro fórum e eles tinham chegado numa conclusão.
É mais ou menos isso mesmo que vocês disseram. Algumas linguagens têm essa característica: as funções retornam o valor do último cálculo se não houver nada no "return". Provavelmente delphi - a linguagem na qual o game maker é baseado - também faz isso e ninguém viu motivo pra eliminar essa característica.
Parabéns, todos chegaram muitíssimo perto ou acertaram.
É mais ou menos isso mesmo que vocês disseram. Algumas linguagens têm essa característica: as funções retornam o valor do último cálculo se não houver nada no "return". Provavelmente delphi - a linguagem na qual o game maker é baseado - também faz isso e ninguém viu motivo pra eliminar essa característica.
Parabéns, todos chegaram muitíssimo perto ou acertaram.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: mistério sem "return"
Primeiramente a função random() tem o return (que por sua vez não é uma função, pois não possui parenteses, e sim um estamento, como if, else e etc), senão não poderíamos fazer:saim escreveu:Como todos sabem (e, se não sabem, tratem de procurar saber), ao
escrevermos um script, podemos colocar a função "return". Ela faz com
que o script retorne o que quer que exista dentro da função, de modo que
podemos armazenar esse valor numa variável. Muito útil pra scripts que
calculam coisas.
- Código:
v=random(100)
Toda função padrão que não retorna valor significativo ou esperado retorna -1 (que significa nada).
Ou seja se colocarmos no script nada():
- Código:
keyboard_check(vk_enter)
Ela irá retornar 1 quando pressionar e 0 quando não pressionar ENTER. Isso porque ela tem um return.
Já sobre função vazia retornar 0, não faz sentido algum, pois é o mesmo que fazer nada. Mas já que é pra retornar alguma coisa que seja 0.
FLWS!
Re: mistério sem "return"
ESTAMENTO!
Essa era a palavra! Eu só conhecia "statement" e nunca procurei traduzir. Achava que era "declaração", que funcionava com "if", "while" e "for", mas soava estranho, no caso do return, então deixei errado mesmo, na esperança de que alguém como o Alex FC me corrigisse. Valeu!!!
Agora, o mistério é que o script que criamos não tem return. Se usássemos, no script:
Essa era a palavra! Eu só conhecia "statement" e nunca procurei traduzir. Achava que era "declaração", que funcionava com "if", "while" e "for", mas soava estranho, no caso do return, então deixei errado mesmo, na esperança de que alguém como o Alex FC me corrigisse. Valeu!!!
Agora, o mistério é que o script que criamos não tem return. Se usássemos, no script:
- Código:
a=random(100); return(a);
- Código:
a=keyboard_check(vk_enter); return(a);
Não sei se concordo. Fiz um testezinho aqui com a função "move_towards_point", que não retorna nada. z=move_towards_point(etc) e draw_text(20, 20, string(z)). O valor mostrado na tela foi "0", não "-1".Alex FC escreveu:Toda função padrão que não retorna valor significativo ou esperado retorna -1 (que significa nada).
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: mistério sem "return"
Eita não precisa pavorar xD, valeu pelo toque.
Bom, só tenho a dizer que tu me deu 3 aulas hoje. Coloca na conta.
Mas na questão do return nas funções estou 100% seguro que estou certo.
A função random tem um return, senão não retornava nada né?
FLWS!
Bom, só tenho a dizer que tu me deu 3 aulas hoje. Coloca na conta.
Mas na questão do return nas funções estou 100% seguro que estou certo.
A função random tem um return, senão não retornava nada né?
FLWS!
Re: mistério sem "return"
É isso que o mrbrum22 disse que acontece mesmo. Quando eu testei, achei normal. Foi depois que eu percebi que você se referia ao não uso do return...
No Delphi é um pouco diferente, o que se usa não é uma instrução (return) e sim uma declaração "Result := retorno;". O Game Maker foi feito em Delphi sim, mas a GML é uma microlinguagem de script, então não há muita relação (eu acho).
------ Editado ------
A propósito, me corrijam se eu estiver errado, mas "return" é instrução e não statement, certo? No help do GM diz "return statement" mas statements, pelo que me ensinaram, fazem com que o código seja executado dentro de determinadas condições, tipo if, else, while, case, repeat, for... Instruction seria return, break, continue, exit. Certo?
saim escreveu:É mais ou menos isso mesmo que vocês disseram. Algumas linguagens têm essa característica: as funções retornam o valor do último cálculo se não houver nada no "return". Provavelmente delphi - a linguagem na qual o game maker é baseado - também faz isso e ninguém viu motivo pra eliminar essa característica
No Delphi é um pouco diferente, o que se usa não é uma instrução (return) e sim uma declaração "Result := retorno;". O Game Maker foi feito em Delphi sim, mas a GML é uma microlinguagem de script, então não há muita relação (eu acho).
------ Editado ------
A propósito, me corrijam se eu estiver errado, mas "return" é instrução e não statement, certo? No help do GM diz "return statement" mas statements, pelo que me ensinaram, fazem com que o código seja executado dentro de determinadas condições, tipo if, else, while, case, repeat, for... Instruction seria return, break, continue, exit. Certo?
GameMakerTutoriais- Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: mistério sem "return"
O motivo é que quando criamos um script, estamos criando uma função e as funções são programadas para retornar 0 (caso não tenha nada) ou um valor qualquer (caso você mesmo retorne algo, ou a última operação feita).
@Ninja8086: está certo o que você disse no Edit.
Até mais!
@Ninja8086: está certo o que você disse no Edit.
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:
Re: mistério sem "return"
o game maker usar uma pilha para armazenar os 'argumentos' e retorno de funçoes...
quando uma funçao retorna , a ultima coisa que estava na pilha é seu 'retorno'
return 3;
é a mesma coisa que 'coloque 3 no topo da pilha'
10 + 3;
coloque '10' na pilha
coloque '3' na pilha
chame o operator '+'
o operator '+' tira 10 e 3 da pilha ( que são os primeiros ) e cloca 13 na pilha ... agora 13 é o primeiro da pilha e é o resultado do operador ...
quando uma funçao retorna , a ultima coisa que estava na pilha é seu 'retorno'
return 3;
é a mesma coisa que 'coloque 3 no topo da pilha'
10 + 3;
coloque '10' na pilha
coloque '3' na pilha
chame o operator '+'
o operator '+' tira 10 e 3 da pilha ( que são os primeiros ) e cloca 13 na pilha ... agora 13 é o primeiro da pilha e é o resultado do operador ...
diego333- Data de inscrição : 06/10/2010
Reputação : 3
Número de Mensagens : 84
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: mistério sem "return"
@Pedro
Vlws o/
Essa pilha seria válida só pra cálculos ?? (considerando todas as funções?) Eu não fiz o teste, mas digamos que eu faça só atribuições (como o exemplo do saim), nesse caso a pilha se valida disso também né? Não sabia disso! Legal demais bróder
Vlws o/
diego333 escreveu:o game maker usar uma pilha para armazenar os 'argumentos' e retorno de funçoes... quando uma funçao retorna , a ultima coisa que estava na pilha é seu 'retorno'
Essa pilha seria válida só pra cálculos ?? (considerando todas as funções?) Eu não fiz o teste, mas digamos que eu faça só atribuições (como o exemplo do saim), nesse caso a pilha se valida disso também né? Não sabia disso! Legal demais bróder
GameMakerTutoriais- Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» O mistério das Canetas BIC
» O misterio da Coca Cola
» Nossa galera é muito bom rever voces o Misterio continua hehe (mystery_boy_maker de volta )
» desmistificando o misterio das piramides
» Kevin Return??
» O misterio da Coca Cola
» Nossa galera é muito bom rever voces o Misterio continua hehe (mystery_boy_maker de volta )
» desmistificando o misterio das piramides
» Kevin Return??
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos