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
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


#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

- Tópicos semelhantes

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