Página 1 de 1

[PROG]#IEM Aula 06 - For, do, until e repeat

Enviado: Sex Abr 29, 2016 3:16 pm
por All-x

INTRODUÇÃO EM GML

Aula 06 - For, do, until e repeat

(Atualizado 08/02/2015)



FOR:

É um ciclo assim como o while. Mas este é configurável. Ele pode realizar várias rotinas simultaneamente.

Essa estrutura é usada para poupar o tamanho do código. Mas não só para isso, serve também para ter controle sobre vários elementos usando um curto código.

Ex:

Se quisermos desenhar 10 círculos alinhados horizontalmente com espaços de 64 pixels entre seus centros na tela, faríamos o seguinte código:

Código: Selecionar todos

//Escolhe a cor vermelha
draw_set_color(c_red)

//Desenha circulos
draw_circle(0,32,32,false)
draw_circle(64,32,32,false)
draw_circle(128,32,32,false)
draw_circle(192,32,32,false)
draw_circle(256,32,32,false)
draw_circle(320,32,32,false)
draw_circle(384,32,32,false)
draw_circle(448,32,32,false)
draw_circle(512,32,32,false)
draw_circle(640,32,32,false)
Como falei antes o for poupa o tamanho do código e cria rotinas simultâneas, então se quiséssemos usar o for no código seria simplesmente isso:

Código: Selecionar todos

//Escolhe a cor vermelha
draw_set_color(c_red)

//Cria ciclo
for (var xx=0; xx < 640; xx+=64)
{
    //Desenha circulos
    draw_circle(xx, 32, 32, false)
}
Entendeu? Não né.

A estrutura do for é divididada em 3 partes:

- Inicialização: declaramos um valor inicial pra uma variável (var xx = 0);
- Condição para continuação do ciclo: define uma condição para fim para o ciclo (xx < 640);
- incremento da variável: Aumenta ou diminui o valor da variável para que em algum momento ela não satisfaça mais a condição (xx += 64).

Em todas as posições em que xx passou (0, 64, 128, 192, 256, 320, 384, 448 e 640) será desenhado o circulo vermelho.

Resumindo: enquanto xx não for menor que 640, serão adicionados mais 64 ao xx até que ele não seja menor que 640. E em cada passo que ele fez para chegar la será desenhado um circulo vermelho.

Desenhando uma linha usando pontos:

Código: Selecionar todos

//Cria ciclo
for(var yy = 0; yy < 100; yy += 1)
{
    //Desenha pixel
    draw_point(10, yy)
}
Ele fez uma linha vertical de 100 pixels certo?

Agora ficou mais simples né? Espero que tenham aprendido, porque é um pouco complicado explicar o For, até mesmo pra quem sabe usa-lo! XD.

Lembrando que o for é um ciclo também, então quando ele for executado ele vai pausar o ciclo do objeto até que sua expressão seja falsa.

DO e UNTIL:

Esses são sempre usados em conjunto e também fazem um ciclo. Exemplo:

Código: Selecionar todos

do {moeda+=1} until moeda>=100
Traduzindo: faça {moeda+=1} até que moeda>=100

Isso faz com que seja adicionado 1 até que a variável moeda seja maior ou igual a 100. Lembrando que a ação ocorre pelo menos uma vez já que a condição é checada depois da mesma. Logo, independente de moedas ser maior que 100, o moedas+=1 ocorrerá ao menos uma vez.

REPEAT:

Muito simples. Essa expressão repete um bloco de código o número de vezes que você desejar:

Código: Selecionar todos

//Repete 10 vezes
repeat(10)
{
    //Cria uma instancia de tiro
    instance_create(x,y,tiro)
}
repete 10 vezes o código entre colchetes, criando 10 instancias de objeto tiro de uma vez.

Aula Anterior: #IEM Aula 05 - Else e Switch
Próxima aula: #IEM Aula 07 - Funções e Scripts

FLWS!