Game Maker - Aula 9 - Instrução While

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade Game Maker - Aula 9 - Instrução While

Mensagem por .:Allison:. em Sex 01 Jul 2011, 19:03

Instrução While

Nome: Instrução While
Nível: Iniciante
Descrição: Aprenda o que é, para que serve e como usar o loop while
Créditos: .:Allison:.

Se você viu a aula passada, provavelmente aprendeu as instruções IF e ELSE, você sabe que eles só operam uma vez quando a expressão é verdadeira ou no caso do ELSE, falsa. O while traduzindo do inglês significa “enquanto”, ele é um loop que pode ser finito ou infinito, sua estrutura é:
Código:
while (condição) {
expressão;
}
Enquanto a condição for verdadeira, vai ficar executando a expressão, quando for falsa, não executa mais. É bom tomar muito cuidado com os loops while, pois se ele resultar em um estado infinito vai travar seu jogo. Como basicamente o While é isso, vamos fazer muitos exemplos para praticar.
while (! place_free (x, y))//enquanto não estiver livre de colisões entre x e y, ou seja, colidindo.
{
x = random (room_width);//escolhe uma posição aleatória na room horizontalmente, e chama ela como x
y = random (room_height);//a mesma coisa, só que ao invés de chamar de x, escolhe verticalmente e chama de y
}

Nesse nosso exemplo, se colocarmos uma instancia que contém esse código em cima de um objeto sólido, ela vai procurar uma posição aleatória na room que não contenha objetos sólidos para se posicionar. O place_free checa se está livre de colisão, ou seja, não está colidindo, como temos o símbolo (! = not) ele nega, ou seja, se não estiver colidindo, a função random(x), escolhe aleatoriamente um número inteiro entre 0 e x, que no nosso caso é room_width e room_height, que são as extremidades horizontal e vertical na room, random trabalha apenas com números.
Vamos fazer um teste, crie dois objetos, um sólido e um não sólido, que será chamado de obj_solido e obj_naosolido, defina qualquer sprite para ambos, no obj_naosolido, coloque o código dado acima e na room, coloque vários sólidos e apenas um não sólido em cima de um sólido. Siga a imagem abaixo.

Perceba que nunca vai se encontrar por cima de um objeto sólido. Outro exemplo é:
while (instance_number(object0)<5) { // enquanto o número de instancias do objeto0 for menor que 5
instance_create(random(room_width), random(room_height), object0)// criar uma instância, em uma posição aleatória da room
}

Isso vai fazer criar 5 instancias em posições aleatórias na room instance_number(object) retorna o número de instancias que o objeto tem, no nosso caso não é de retorno, e sim de comparação. Se você colocar esse código junto com a engine que fizemos agora pouco, no mesmo evento, vai criar normalmente, porém não vai colidir com nenhum objeto sólido.

O while pode ser colocado em qualquer objeto, desde que não gere um estado infinito, por exemplo, se trocássemos o sinal de (<) que contém código que fizemos logo acima, por (>), vai resultar em um estado infinito, outro exemplo é:
while (2 = 2) {//enquanto 2 é igual a 2
var = 1+1;//a variável é igual a 1 + 1, ou seja, 2
}

Isso é uma instrução de estado infinito, pois 2 sempre será igual a 2, e sempre vai executar a expressão, assim fazendo travar seu jogo.

Essa aula não foi muito extensa até porque o while é bem fácil, acho que deu para compreender essa instrução. Fiz um exemplar da nossa aula, bem básico, sugestões, críticas e perguntas, estão aceitas.
Download do Exemplar da Aula 9 - Instrução While Happy

.:Allison:.

Ranking : Nota B
Número de Mensagens : 630
Idade : 20
Data de inscrição : 25/07/2010
Notas recebidas : B
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://clubmaker.forumeiros.com

Voltar ao Topo Ir em baixo

Qualidade Re: Game Maker - Aula 9 - Instrução While

Mensagem por Klior em Sex 01 Jul 2011, 19:25

Apesar de while ser bem simples, você soube explicar muito bem.
Ótimo tutorial

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Game Maker - Aula 9 - Instrução While

Mensagem por Lord Minus em Sex 01 Jul 2011, 19:34

até hoje o melhor tutorial sobre while (acho que o único) que li vc sabe explicar bem apesar de ser um tema bem restrito parabéns, eu não faria melhor

Lord Minus

Ranking : Nota D
Número de Mensagens : 269
Idade : 19
Data de inscrição : 23/09/2010
Notas recebidas : E-E-C-D-C
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://facebook.com/lordminus

Voltar ao Topo Ir em baixo

Qualidade Re: Game Maker - Aula 9 - Instrução While

Mensagem por .:Allison:. em Sab 02 Jul 2011, 20:27

É, eu percebi que não existe nenhum tutorial sobre a instrução while no fórum. Muito obrigado !!

.:Allison:.

Ranking : Nota B
Número de Mensagens : 630
Idade : 20
Data de inscrição : 25/07/2010
Notas recebidas : B
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://clubmaker.forumeiros.com

Voltar ao Topo Ir em baixo

Qualidade Re: Game Maker - Aula 9 - Instrução While

Mensagem por Isaque Onix em Qua 27 Ago 2014, 11:50

nao sei se voce e um usuario ainda ativo no forum, mais eu acho melhor perguntar aqui para outro membro responder do que criar um novo topico (acredito eu).

no while, pode-se usar 'or' ou '&&'?
eu testei, mais da erro e o jogo simplesmente para...

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Qualidade Re: Game Maker - Aula 9 - Instrução While

Mensagem por Conteúdo patrocinado Hoje à(s) 02:08


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum