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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/11/2009
Número de Mensagens : 803
Insígnias de JAM :

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

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

Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 17:18
HeHe parece prova não? Mas essa é a minha dúvida, em quais operações ou em que momentos o for atua?

Ele atua na criação de um inventário. Isso eu sei =D mas não sei usar haha

Se puderem dar exemplos com códigos Happy estou tentando aprender isso aí a tempos, só que nunca sei onde usar! Obrigado.
avatar
Data de inscrição : 31/08/2010
Número de Mensagens : 630
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://leninja.com.br

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 17:28
Primeiro, para aprender qualquer linguagem não se pode pensar que aquilo só serve para algo, tem que ter na cabeça que isso e uma seguencia logica de ações.

o for nada mais e que um segundo while, ou seja, mais organizado, contento ponto inicial, ponto final e o valor que vai ser acrescentado ou retirado.

for(ponto inicial;ponto final;valor acrescentado ou retirado){
ação a ser repetida
}
Se você quer que o for pare em um determinado momento é só usar o break; que ele sai do comando for e executa a proxima etapa do seu script(ou d&d).

exemplo:
você quer criar 200 objetos de uma só vez, como fazer?

instance_create(x,y,objeto)
instance_create(x,y,objeto)
instance_create(x,y,objeto)
instance_create(x,y,objeto)
...

imagina o tamanho do codigo fazendo assim.

Com o for você só usará 4 linhas(modelo organizado).

for(variavel=1;variavel<=200;variavel+=1)
{
instance_create(x,y,objeto)
}
enguanto a variavel for menor ou igual a 200 será repetido o comando entre as chaves e no final irá acrescentar 1 na variavel.

lembre que se o for não tiver fim seu jogo irá travar, e por isso que tem o acréscimo.

Acho que expliquei do melhor jeito possivel, como aprendi na faculdade ;D
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/11/2009
Número de Mensagens : 803
Insígnias de JAM :

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

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

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 17:32
É explicou legal, mas onde usar? Tipo em que tipo de jogos?
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

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

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

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 17:35
fala aí SOul.
No meu inventário eu uso pra criar os Itens, que estão dentro de um Vetor.
O For é usado pra executar um comando quantas vezes vc especificar.
por exemplo:
Código:

var itens;
var itens_tamanho;
itens[0] = obj_Erva;
itens[1] = obj_Flecha;
itens_tamanho = 2;

for (i=0; i< itens_tamanho; i+=1){
in = instance_create(x,y + ((i+1)*40),itens[i]);
}
Eu uso isso pra exibir Itens em um inventário.
Coloco os itens em um Vetor, e usando um laço For , crio uma
instancia de cada Item, usando o Contador 'i' para setar o 'index' do Vetor.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/11/2009
Número de Mensagens : 803
Insígnias de JAM :

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

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

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 17:40
E ae Eudes, então... esse cód que vc usa para colocar coisas no seu inventario, ele vai adicionando 1 a 1 dentro dos quadrados certo? Ou seja se vc pega uma erva, ele adiciona no primeiro quadrado, se voce pega outra ele adiciona no outro. Isso?
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 16/01/2012
Número de Mensagens : 970
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 2
Ver perfil do usuáriohttp://trfnsite.com

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 17:42
O for na verdade não é uma obrigatoriedade padrão de um jogo , e sim está envolvido na facilitação do trabalho do programador.O for em si , conceitualmente falando , é isso mesmo a que o pit bull se refere.A aplicação dele depende da sua necessidade.Vou dar um exemplo :

# Exemplo :
Código:
text = ""; // Text é declarado como uma variável-string.
for(i = 0; i < 5; i += 1) // Iniciamos a estrutura de repetição que se fará 5 vezes .
  begin // Início
    text += choose("a" , "b" , "c" , "d" , "0" , "1" , "2" , "3"); // Somamos algum desses caracteres aleatoriamente.
  end // Fim.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/11/2009
Número de Mensagens : 803
Insígnias de JAM :

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

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

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 17:45
TRFN então com esse cód aí ele vai escrever: B32CA por exemplo!? Ou 310CD etc.
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: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 18:29
O for é um laço. Ou seja, o jogo fica "preso" no laço (ou ciclo) até que o mesmo termine. Assim como o for, há outros laços, como while. Qual é a principal diferença? O while segura o jogo enquanto a condição for satisfeita, mas o for te dá a possibilidade de saber quantas vezes o ciclo foi repetido (não é só isso).

Por exemplo:

while( nome == "" ) nome = get_string('Digite seu nome:', '');

Isso vai prender o jogo enquanto o nome estiver vazio. Ficará repetindo o código.

Já no caso do for, você pode fazer muitas outras coisas, mas vou mostrar o mesmo exemplo, incrementado:

Código:
for(i = get_string("Digite seu nome:", ''); i =="" or i=="nome proibido"; i = get_string("Digite seu nome:", '') )  {};

Isso também impedirá que o nome seja vazio. Além disso, há a possibilidade de certo nome ser proibido. No while isso é até mais fácil, mas o exemplo tem objetivos didáticos. No caso, o jogo vai declarar i como a string digitada. Então vai checar se i é igual a "", se não for, ele já para de executar o laço. Se for, ele executa o código colocado na terceira posição (i = get_string()), então ele volta a verificar a condição (i == ""), e assim o laço recomeça.

Até mais!
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

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

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

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 18:42
Soul Limaloko escreveu:E ae Eudes, então... esse cód que vc usa para colocar coisas no seu inventario, ele vai adicionando 1 a 1 dentro dos quadrados certo? Ou seja se vc pega uma erva, ele adiciona no primeiro quadrado, se voce pega outra ele adiciona no outro. Isso?

isso. a minha lógica é asism:
vetor itens[]
itens_tamanho = 0

Na colisão do Player com qualquer Item, eu adiciono o Item ao vetor, e seto seu tamanho:
Colisão do Player com Erva:
Código:

itens[itens_tamanho] = obj_erva;
itens_tamanho = itens_tamanho +1;
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 20:55
Não pense em um comando deste jeito. As linguagens disponibilizam os comandos para você construir o seu software (no caso do GM, na maioria Jogos). Por isso é muito importante se concentrar na lógica do que você quer fazer do que no comando em si. Por exemplo, se você precisa repetir algo, pode usar o For, While, Repeat etc isso é uma escolha pessoal e de conveniência.
Eu particularmente uso For quando trabalho com arrays, pois é muito facil você "atravessar" um array usando este comando. Ou seja, basicamente os comandos de laço como For, While e Repeat são usados quando se quer "Repetir" algo e/ou "Indexar" algo. Operações com índices são muito importantes para projetos de jogos mais sofisticados.
O exemplo de "Inventario" que você citou pode ser feito utilizando um array bidimensional, por isso a utlização do For se aplica tão bem a este tipo de construção.
Por isso mais uma vez eu digo, se concentre mais naquilo que deseja fazer e use os comandos (qualquer um deles) como ferramentas para se chegar ao objetivo desejado, pensar desta maneira inclusive facilita portar o seu jogo para outras plataformas com mais facilidade.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/11/2009
Número de Mensagens : 803
Insígnias de JAM :

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

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

Re: Em quais operações o comando "for" atua? Cite 4 exemplos.

em Sab 28 Jul 2012, 21:01
Muito bom! Gostei bastante das respostas.

Vou treinar agora tentando fazer um inventário. Começando por ele é lógico. Alguém tem um bom tutorial para indicar de inventário? Sem engine sem nada! O que eu quero é basicamente: "1- ja tenho uma HUD de inventario desenhada 5x3=15 quadradinhos, 2- colocar objetos dentro dele, 3- com o mouse excluir os objetos dele". Pow, entendi bem só me resta treinar se não esqueço tudo de novo! haha Obrigado. Happy

- EDIT -

Procureis uns tutoriais, e achei alguns que fazem o seguinte: Adicionam o objeto mas sempre na mesma casa =/ por exemplo: peguei um diamante, ele adiciona na casa 2, depois peguei um ouro adiciona na casa 1, o correto seria verificar se a casa 1 está livre e entao jogar na casa 1, se nao estiver livre na casa 2, se a casa 2 nao estiver livre na casa 3 e assim sucessivamente mas não consegui achar isso.
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