Pages

terça-feira, 5 de julho de 2011

TUTORIAL 13

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.
1if (keyboard_check(vk_left)) { // Se condição for verdadeira
2x-=3.5//executa a expressão
3}

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:
1if not (keyborad_check(vk_left)) {// se não for pressionado a tecla esquerda
2draw_text(x,y,"aperte a tecla esquerda para andar")// desenha um texto
3}

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:
1if (keyboard_check(vk_left)) { // Se condição for verdadeira
2x-=3.5//executa a expressão
3}
4else {// se não for verdadeira
5draw_text(x,y,"aperte a tecla esquerda para andar")// desenha um texto
6}

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
1var estudo;
2if (estudo>=100) {
3draw_text(x,y,"parabéns, seus estudos estão 100%");
4}
5else{//se o estudo não for igual a 100
6 estudo+=1
7   }

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 iftrabalha livre com variáveis, funções, expressões entre outros, ele também pode entrar dentro de umahierarquia, ou seja, pode ser if dentro de if. Por exemplo, numa troca de strites:
01var parado, direita;//declaramos as variáveis
02parado=true//acrescentamos valores às variáveis
03direita=false
04if (parado=true) { // se estiver parado
05    if (direita=true) { // e se estiver para a direita
06      sprite_index=player_parado_direita;//troca para a sprite direita
07    }else{// se não estiver para a direita
08      sprite_index=player_parado_esquerda;//troca para a sprite esquerda
09      }
10}else{// se não estiver parado
11 if (direita=true) {// e se estiver para a direita
12       sprite_index=player_andan_direita; // troca para a sprite direita andando
13   }else{//se não estiver para a direita
14       sprite_index=player_andan_esquerda;// troca para a sprite esquerda andando
15      }
16}

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!


0 comentários:

Postar um comentário