Entrar
Últimos assuntos
» Preciso de ajudapor 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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28
» 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
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
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
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|