GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


#IEM Aula 06 - For, do, until e repeat

5 participantes

Ir para baixo

#IEM Aula 06 - For, do, until e repeat Empty #IEM Aula 06 - For, do, until e repeat

Mensagem por All-x Qui 31 Dez 2009, 20:25

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:
//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:
//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:
//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:
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:
//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.

Próxima aula: Funções e Scripts



FLWS!


Última edição por Alex FC em Seg 09 Fev 2015, 16:02, editado 16 vez(es) (Motivo da edição : Atualização)
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IEM Aula 06 - For, do, until e repeat Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IEM Aula 06 - For, do, until e repeat Empty Re: #IEM Aula 06 - For, do, until e repeat

Mensagem por Henrique_GJ Seg 04 Jan 2010, 17:07

!!! entendi nada essa parada de xx.. yy.... se não for maior adiciona até ser menor???

entendido: 10%

eu entendi isso: sem for é preciso identificar todos os lugares que serão pintados, mas com for eu coloco a distancia entre cada um, e ele faz todo o calcuo sozinho.

...

afinal, o q é xx e yy???
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : #IEM Aula 06 - For, do, until e repeat Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

#IEM Aula 06 - For, do, until e repeat Empty Re: #IEM Aula 06 - For, do, until e repeat

Mensagem por diassis Seg 04 Jan 2010, 17:29

Alex FC estou salvando suas aulas, não estou com tempo de ver agora pois estou no trabalho, mas conhecendo seu potencial, já te parabenizo, acredito que seja um exelente material.

mas não vi as aulas 1, 3, 4 e 5

falow!!!! como sempre, você contribui muito para o conhecimento dos forumeiros. lol!
diassis
diassis

Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 312
Prêmios : #IEM Aula 06 - For, do, until e repeat Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 06 - For, do, until e repeat Empty Re: #IEM Aula 06 - For, do, until e repeat

Mensagem por GuiEdu Ter 07 Set 2010, 10:32

com licença, foi mal o revive aí, mas eu tô com uma pequena dúvida Happy
Eu tenho 4 tipos de tiros, aí eu quero que ao colidir com o obj_controla_tiro, o tiro do player mude; pois bem, dá pra fazer isso com for ?? EXEMPLO :
Create
Código:
tiro = 1

key pressed X :
Código:
for (tiro = 1)
{
  instance_create(x,y,tiro_1)
}
e assim por diante com os demais tiros...
Dá certo? Qual seria a melhor opção ? vlw aí Happy
GuiEdu
GuiEdu

Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios : #IEM Aula 06 - For, do, until e repeat Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 06 - For, do, until e repeat Empty Re: #IEM Aula 06 - For, do, until e repeat

Mensagem por Henrique_GJ Dom 12 Dez 2010, 21:34

a sim estava relendo uns topicos e agora entendi o for é facil neh

mas pra mim até agora ele parece ser meio desuso (ou em outras palavras obsoleto, inutil)

porque tipo refazendo o primeiro exemplo sem usar o for eu colocaria no create

xx=0

depois no step

if xx < room_widht {xx+=64; draw_circle(x,y,raio,cor1,cor2,0)}

daria o mesmo ¬¬

mas deve de ter alguma funcionalidade neh, bom pelo menos poupa uns 15 segundos de trabalho usando um codigo menor e sem precisar trocar de evento

mas de uma forma ou de outra alguem tinha que explicar isso pra galara, parabens alex

Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : #IEM Aula 06 - For, do, until e repeat Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

#IEM Aula 06 - For, do, until e repeat Empty Re: #IEM Aula 06 - For, do, until e repeat

Mensagem por Lighter Qui 24 Jul 2014, 10:20

Henrique_GJ escreveu:a sim estava relendo uns topicos e agora entendi o for é facil neh

mas pra mim até agora ele parece ser meio desuso (ou em outras palavras obsoleto, inutil)

porque tipo refazendo o primeiro exemplo sem usar o for eu colocaria no create

xx=0

depois no step

if xx < room_widht {xx+=64; draw_circle(x,y,raio,cor1,cor2,0)}

daria o mesmo ¬¬

mas deve de ter alguma funcionalidade neh, bom pelo menos poupa uns 15 segundos de trabalho usando um codigo menor e sem precisar trocar de evento

mas de uma forma ou de outra alguem tinha que explicar isso pra galara, parabens alex


Vc entendeu errado!

O exemplo do Alex foi com círculos simples para ter um fácil entendimento dos usuários. Entretanto para expressões mais complexas quando usamos VÁRIAS variáveis, o FOR sera um elemento que tornara a programação mais ágil e fácil. Resultando em uma perda de tempo drástica, se colocarmos em evidencia o FOR e o IF.
Flw!
Lighter
Lighter

Games Ranking : Sem avaliações

Data de inscrição : 16/01/2014
Reputação : 31
Número de Mensagens : 317
Prêmios : #IEM Aula 06 - For, do, until e repeat Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0

http://google.com

Ir para o topo Ir para baixo

#IEM Aula 06 - For, do, until e repeat Empty Re: #IEM Aula 06 - For, do, until e repeat

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos