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 8 - As declarações IF e ELSE

Ir para baixo

Game Maker - Aula 8 - As declarações IF e ELSE Empty Game Maker - Aula 8 - As declarações IF e ELSE

Mensagem por .:Allison:. Seg 27 Jun 2011, 16:24

Expressões “If” e “Else”
Nome: Expressões “If” e "Else"
Nível: Iniciante
Descrição: Aprenda como checar se a expressão é verdadeira, ou seja, fazer algumas perguntas ao GM.
Créditos: .:Allison:.

Bom, já vimos o essencial para irmos agora para um tipo de chave chamada “Expressões”. Prepare-se, pois iremos juntar tudo que vimos nas aulas passadas, nessa aula darei muitos exemplos. O if é uma Expressão de Checagem que checa se a condição é verdadeira, se sim, executa a expressão, é mais como um tipo de pergunta, traduzindo do inglês, a palavra (if) significa (se), como assim "se"? Explicarei daqui a pouquinho. A estrutura do if é basicamente assim:
Código:
if (condição) {
expressão;
}
Traduzindo:
Código:
SE a condição é verdadeira {
executa a expressão
}
Deu para pegar um pouco não deu? Isso mesmo, Se a condição for verdadeira, vai executar a expressão do if. Com exemplo fica mais fácil de entender.
if (keyboard_check(vk_left)) { // Se condição for verdadeira
x-=3.5//executa a expressão
}

No nosso caso temos:
Código:
Se (estiver_pressionando(tc_esquerda)){
Mova 3.5 pixels à esquerda
}
Isso funciona repetidamente, enquanto você estiver pressionando a tecla esquerda do seu teclado, vai ficar executando a expressão, ou seja, vai ficar movendo 3.5 pixels à esquerda, quando não estiver pressionando não acontece nada, isso é um código de movimentação.
Se por exemplo, quisermos fazer com que quando não estiver pressionando à esquerda ele execute algo?? se você se desempenhou bem, pensou, assim:
if not (keyborad_check(vk_left)) {// se não for pressionado a tecla esquerda
draw_text(x,y,"aperte a tecla esquerda para andar")// desenha um texto
}

Está correto, aliás, se você pensou nisso, parabéns, você está indo muito bem, se não, estude mais. Porém tem uma expressão que faz justamente isso, é o else ele faz justamente o contrário do if, ou seja ele checa se a condição é falsa, se sim, ele vai executar a expressão, traduzindo do inglês o (else) fica (se não).Ele só pode ser usado com if, basicamente sua estrutura é:
Código:
If (condição) { // Se a condição for verdadeira
Expressão;//executa a expressão
}
Else {//se a condição declarada acima for falsa
Expressão;//executa a expressão
}
Eu acho que você já conseguiu entender, se não, explicarei agora com um exemplo:
if (keyboard_check(vk_left)) { // Se condição for verdadeira
x-=3.5//executa a expressão
}
else {// se não for verdadeira
draw_text(x,y,"aperte a tecla esquerda para andar")// desenha um texto
}

Primeiro checamos se está sendo pressionada a tecla esquerda, se ela estiver, vai executar o x-=3.5, porém se ela não tiver sendo pressionada, vai pular para a expressão do else, ou seja, draw_text.

É incrível como esse pedacinho de código, pode fazer coisas fantásticas, aliás, se eu não mim engano, eu deixei uma frase: "se você pensou nisso, parabéns, você está indo muito bem, se não, estude mais." Poderíamos simplesmente transformar isso em um código, que tal? Vamos tentar!
Primeiro iremos declarar o if
var estudo;
if (estudo>=100) {
draw_text(x,y,"parabéns, seus estudos estão 100%");
}
else{//se o estudo não for igual a 100
estudo+=1
}

Esse código nunca vai dar menos ou mais que 100. Isso acontece por que, primeiro, se for maior ou igual a 100 vai executar a expressão, ou seja, nunca vai passar, se for menor do que 100, vai acrescentar mais 1, nesse caso vai ser sempre, ou quase sempre 100.

A expressão if, trabalha livre com variáveis, funções, expressões entre outros, ele também pode entrar dentro de uma hierarquia, ou seja, pode ser if dentro de if. Por exemplo, numa troca de strites:
var parado, direita;//declaramos as variáveis
parado=true//acrescentamos valores às variáveis
direita=false
if (parado=true) { // se estiver parado
if (direita=true) { // e se estiver para a direita
sprite_index=player_parado_direita;//troca para a sprite direita
}else{// se não estiver para a direita
sprite_index=player_parado_esquerda;//troca para a sprite esquerda
}
}else{// se não estiver parado
if (direita=true) {// e se estiver para a direita
sprite_index=player_andan_direita; // troca para a sprite direita andando
}else{//se não estiver para a direita
sprite_index=player_andan_esquerda;// troca para a sprite esquerda andando
}
}

Esse código faz uma troca de sprites, mas você pensa, só temos duas variáveis, “parado e direita”, e a andando e esquerda? É só usar uma questão de lógica, se o parado for igual à true (verdadeiro) ele está parado, se for igual à false (falso) ele está andando.
Você já está imaginando o que se pode fazer com if!!!

Temos novidades, primeiro que a partir dessa aula teremos os nossos exemplares de aulas, que são arquivos gmk, ou seja, uma engine do assunto abortado. Hoje temos uma engine usando o if para um sistema de compras simples, a engine está bem explicativa. Se você anda ligado em todas as aulas, você percebeu que usamos muitas coisas que aprendemos nas aulas anteriores, tudo que tem nos códigos já foi ensinado, se você não sabe ou se esqueceu, leia os outros tutorias e tente gravar o máximo possível, lembre-se nada cai do céu, você precisa lutar para ter tudo o que quer!

Download do Exemplar da Aula 8 - Variáveis

Até Mais !!! Razz
.: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 8 - As declarações IF e ELSE 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

Ir para o topo

- Tópicos semelhantes

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