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


Game Maker - Aula 9 - Instrução While

4 participantes

Ir para baixo

Game Maker - Aula 9 - Instrução While Empty Game Maker - Aula 9 - Instrução While

Mensagem por .:Allison:. Sex 01 Jul 2011, 19:03

Instrução While

Nome: Instrução While
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.
while (! place_free (x, y))//enquanto não estiver livre de colisões entre x e y, ou seja, colidindo.
{
x = random (room_width);//escolhe uma posição aleatória na room horizontalmente, e chama ela como x
y = random (room_height);//a mesma coisa, só que ao invés de chamar de x, escolhe verticalmente e chama de y
}

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.
Game Maker - Aula 9 - Instrução While T6X58
Perceba que nunca vai se encontrar por cima de um objeto sólido. Outro exemplo é:
while (instance_number(object0)<5) { // enquanto o número de instancias do objeto0 for menor que 5
instance_create(random(room_width), random(room_height), object0)// criar uma instância, em uma posição aleatória da room
}

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 é:
while (2 = 2) {//enquanto 2 é igual a 2
var = 1+1;//a variável é igual a 1 + 1, ou seja, 2
}

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 Happy
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : Game Maker - Aula 9 - Instrução While Empty

Medalhas x 0 Tutoriais x 14 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

Game Maker - Aula 9 - Instrução While Empty Re: Game Maker - Aula 9 - Instrução While

Mensagem por Klior Sex 01 Jul 2011, 19:25

Apesar de while ser bem simples, você soube explicar muito bem.
Ótimo tutorial
Klior
Klior

Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios : Game Maker - Aula 9 - Instrução While Empty

Medalhas x 0 Tutoriais x 1 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
  • C#
  • Javascript


Ir para o topo Ir para baixo

Game Maker - Aula 9 - Instrução While Empty Re: Game Maker - Aula 9 - Instrução While

Mensagem por Biemorth Sex 01 Jul 2011, 19:34

até hoje o melhor tutorial sobre while (acho que o único) que li vc sabe explicar bem apesar de ser um tema bem restrito parabéns, eu não faria melhor
Biemorth
Biemorth

Games Ranking : Sem avaliações

Data de inscrição : 23/09/2010
Reputação : 4
Número de Mensagens : 283
Prêmios : Game Maker - Aula 9 - Instrução While 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

https://facebook.com/playtimers

Ir para o topo Ir para baixo

Game Maker - Aula 9 - Instrução While Empty Re: Game Maker - Aula 9 - Instrução While

Mensagem por .:Allison:. Sáb 02 Jul 2011, 20:27

É, eu percebi que não existe nenhum tutorial sobre a instrução while no fórum. Muito obrigado !!
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : Game Maker - Aula 9 - Instrução While Empty

Medalhas x 0 Tutoriais x 14 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

Game Maker - Aula 9 - Instrução While Empty Re: Game Maker - Aula 9 - Instrução While

Mensagem por Isaque Onix Qua 27 Ago 2014, 11:50

nao sei se voce e um usuario ainda ativo no forum, mais eu acho melhor perguntar aqui para outro membro responder do que criar um novo topico (acredito eu).

no while, pode-se usar 'or' ou '&&'?
eu testei, mais da erro e o jogo simplesmente para...
Isaque Onix
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1626
Prêmios : Game Maker - Aula 9 - Instrução While 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
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

Game Maker - Aula 9 - Instrução While Empty Re: Game Maker - Aula 9 - Instrução While

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