Entrar
Últimos assuntos
» player não consegue andarpor 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
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
#IEM Aula 06 - For, do, until e repeat
INTRODUÇÃO EM GML
Aula 06 - For, do, until e repeat
(Atualizado 08/02/2015)
É 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
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)
}
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)
Re: #IEM Aula 06 - For, do, until e repeat
!!! 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???
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???
Re: #IEM Aula 06 - For, do, until e repeat
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.
mas não vi as aulas 1, 3, 4 e 5
falow!!!! como sempre, você contribui muito para o conhecimento dos forumeiros.
diassis- Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 312
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: #IEM Aula 06 - For, do, until e repeat
com licença, foi mal o revive aí, mas eu tô com uma pequena dúvida
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
key pressed X :
Dá certo? Qual seria a melhor opção ? vlw aí
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)
}
Dá certo? Qual seria a melhor opção ? vlw aí
GuiEdu- Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: #IEM Aula 06 - For, do, until e repeat
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
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
Re: #IEM Aula 06 - For, do, until e repeat
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!
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos