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.
1 |
2 |
3 |
4 |
5 |
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.
Expandir esta imagem Ver em tamanho real

Perceba que nunca vai se encontrar por cima de um objeto sólido. Outro exemplo é:
1 |
2 |
3 |
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 é:
1 |
2 |
3 |
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

0 comentários:
Postar um comentário