Monkey Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.


O fórum brasileiro de desenvolvimento de jogos na plataforma Monkey
 
InícioÚltimas imagensProcurarRegistarEntrar
Entrar
Nome de usuário:
Senha:
Entrar automaticamente: 
:: Esqueci-me da senha
Últimos assuntos
» A pagina fica sempre em branco.
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime3/9/2011, 11:27 por vinians

» [PROJETO] Space Quest
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime3/9/2011, 11:18 por vinians

» Mais uma banana no sitie...
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime3/9/2011, 09:34 por vinians

» [Site] Inauguração do nosso site de desenvolvimento XCreator Minigames
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime1/9/2011, 17:05 por vinians

» [PROJETO] PacMonkey
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime30/8/2011, 16:22 por vinians

» [PROJETO] [APRENDIZADO] Rocks
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime19/8/2011, 16:15 por vinians

» [seção críticas e sugestões] Editar tópicos
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime19/8/2011, 16:02 por vinians

» Tabela - Arquivos de áudio compatíveis - HTML5
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime16/8/2011, 14:43 por vinians

» Bom dia,Monkey Brasil!
Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime16/8/2011, 14:09 por GMLucas

Palavras-chaves
parte
Procurar
 
 

Resultados por:
 
Rechercher Pesquisa avançada
Parceiros
Fórum grátis


Compartilhe | 
 

 Conhecendo a Linguagem Monkey - Parte 2

Ver o tópico anterior Ver o tópico seguinte Ir para baixo 
AutorMensagem
vinians
vinians

Webmaster
Mensagens : 23
Data de inscrição : 04/08/2011

Parâmetros
Advertências:
Conhecendo a Linguagem Monkey - Parte 2 Left_bar_bleue0/0Conhecendo a Linguagem Monkey - Parte 2 Empty_bar_bleue  (0/0)

Conhecendo a Linguagem Monkey - Parte 2 Empty
MensagemAssunto: Conhecendo a Linguagem Monkey - Parte 2   Conhecendo a Linguagem Monkey - Parte 2 Icon_minitime14/8/2011, 10:41

Olá pessoal! Bem vindo a segunda parte da nossa jornada na linguagem Monkey. Desta vez, vamos conhecer mais sobre expressões, instruções de repetição, e operadores.

Expressões

Para se fazer cálculos ou manipular string e/ou outros elementos do seu programa você precisa de expressões. As expressões por sua vez, precisam de operadores para que possam realizar seu trabalho. Veja abaixo os operadores que você pode utilizar na linguagem Monkey:

Conhecendo a Linguagem Monkey - Parte 2 Conhecendo%20a%20Linguagem%20Monkey%20-%20Parte%202%20-%20Tabela%20Operadores


Expressões aritméticas

São expressões onde há somente cáculos usando operadores matemáticos. Essas expressões podem conter variáveis, constantes, valores literais como 20.3, 30, -40, funções como Sin(), Cos(), Rnd() etc, vejamos:


Código:
local calculo:int
local x:float
local y:float

Const MAX_INIMIGOS = 30 'uma constantante

x = Sin(30) * 40 + x
y = 120  + (800 mod x)

A linguagem Monkey assim como a maioria das linguagens tem uma regra de precedência de operadores. Veja:
  • Os operadores e expressões dentro de parenteses são analisados antes de todos.
  • Operadores unários
  • Depois vem os operações de multiplicação, divisão e módulo
  • E por fim os operadores de + (soma), - (subtração)



Expressões Lógicas

As expressões lógicas usam operadores lógicos e retornam Verdadeiro ou Falso. São utilizadas em tomadas de decisão, comandos de repetição e como expressões relacionais complexas usando AND e OR.
Digamos que você precise impedir que a sua nave não saia da parte visível da tela. Sabendo que sua nave é uma imagem de 32 x 32 pixels e que a sua tela contem 800 x 600 pixels você pode fazer algo como:
Código:
if (KeyDown(KEY_LEFT))
  if (x > 16) x = x - 1 'o ponto de referência é o centro da imagem
end
Observe que temos um SE dentro de outro SE. A função KeyDown() é uma função booleana que retorna TRUE se uma tecla for pressionada e false caso contrário. Então, traduzindo: Se o jogador pressionar seta ESQUERDA E Se o x for > (maior) que 16 diminuimos 1 de x. Você pode observar que essa é uma expressão composta de duas expressões lógicas. Ou seja para que a expressão matemática x = x - 1 seja executada é necessario que as duas expressões sejam VERDADEIRAS. Veja agora essa mesma expressão escrita com operadores booleanos. Um operador booleano AND ou OR conecta duas expressões lógicas. Veja:
Código:
if (KeyDown(KEY_LEFT)) and (x > 16)
    x = x - 1
end
Viu como fica mais claro ? Você pode combinar AND's e OR's para criar as mais variadas expressões lócias de acordo com a lógica do seu game.

Controle de Fluxo

Quando o computador executa o seu programa a ordem natural de execução é de cima para baixo. Ele começa pela função Main() executa a primeira linha até ultima. Se a função Main() iniciar algum objeto ou chamar outra função, o mesmo acontece ou seja ele "pula" pra função ou método de objeto e excuta de cima pra baixo. Entretanto, muitas vezes precisamos que certas partes de um programa executem em uma ordem diferente, ou que seja repetida várias vezes, tome desvios baseado em certas condições. Para isso temos os comandos de controle de fluxo e de loop.

Comando IF

O comando IF permite que você execute um código se determinadas condições forem satisfeitas. Se a expressão relacional ou booleana for avaliada como TRUE (verdadeira) o comando/bloco será executado.
Vejamos um exemplo:
Código:
contador = contador + 1
If (contador = 2000)
  print "O contador chegou a 2000"
end
if (Sqrt(Abs(x - inimX) + Abs(y - inimY)) < 10)
  PlaySound(sndBum)
  score += 100
end
Neste exemplo de código o primeiro if verifica se a variável "contador" é = (igual) que 2000 e caso seja VERDADEIRO (True) imprime a mensagem "O contador chegou a 2000". No segundo If verificamos se a distância entre dois personagens de um jogo está menor que 10 pixels e caso seja TRUE (Verdadeiro), tocamos um som e aumentamos o score 100 pontos.
Sintaxe geral do comando IF:

if Expressão [Then]
...Comandos...
ElseIf Expressão [Then]
...Comandos
ElseIf Expressão [Then]
...Comandos
Endif

Comando Select

O comando Select é como se fosse um IF turbinado. Você geralmente usa o Select quando você tem que testar a mesma variável com várias condições. Veja o exemplo abaixo:

Código:
Select Level
  Case 1, 3
        adicionaInimigo(Rnd(DeviceWidth), -32, inimigo1)
  Case 2, 4
        adicionaInimigo(Rnd(DeviceWidth), -32, inimigo2)
  Case 5
        venceu()
 End
Neste trecho de código, testamos a variável Level e de acordo com ela criamos certo tipo de inimigo ou jogador vence. Se fossemos usar um If esse mesmo trecho de código poderia ser escrito assim:
Código:
if (Level = 1) or (Level = 3)
  adicionaInimigo(Rnd(DeviceWidth), -32, inimigo1)
elseif (Level = 2) or (Level = 4)
  adicionaInimigo(Rnd(DeviceWidth), -32, inimigo2)
elseif (Level = 5)
  venceu()
End
Observe que no If você deve repetir a variável Level em todas as condições causando uma maior digitação e tornando o código um pouco mais ilegível. Eu particularmente prefiro o Select, mas vai da escolha de cada um.

Comando de repetição While

Quando precisamos repetir um trecho de código podemos usar o While. O comando While repete um trecho enquanto uma condição for verdadeira. Vejamos um exemplo:
Código:
local c:int
c = 10
while (c > 0)
  fazAlgo(c)
  c -= 1
end
function fazAlgo(int c)
  print c
end
Neste exemplo a função fazAlgo() é chamada 10 vezes. Como você pode observar, o While testa antes a condição, ou seja se a condição não for verdadeira ele nem entra no loop. O que você acha que aconteceria se não estivessemos colocado o comando "c -= 1" ? Pense nisso.

Comando de repetição Repeat..Forever

Bem, forever em inglês significa "para sempre" e é exatamente o que o comando de repetição Repeat..Forever faz, ele fica eternamente "rodando". Mas como sair de um loop Forever? Simples, adicionamos alguma condição em nosso código que execute o comando Exit. Veja o exemplo:
Código:
local c:int
c = 0
Repeat
  c = c + 1
  if (c == 10) Exit
Forever
Comando de Repetição FOR Numéico

Vejamos agora mais um comando muito comum de repetição disponivel em diversas linguagens, o comando FOR. Em Monkey utilizamos o comando FOR quando já sabemos o número exato de iterações que precisamos. Nesse caso basta coloca um inicio e um fim que o FOR automaticamente analisa as condições de termino do loop. Veja o exemplo abaixo:
Neste exemplo, precisamos imprimir a string "Monkey Brasil" 10 vezes. Veja, sabemos que queremos 10 vezes então vamos usar o FOR.
Código:
For Local index = 1 to 10 Step 1
  Print "Monkey Brasil"
End
Observe o uso da declaração Local. Como já vimos em outra parte desta série de artigos, "Local" declara uma nova variável de escopo local. Neste caso como estamos em um FOR a variável Index só podera ser usada dentro deste loop, e isso é exatamente oque queremos neste caso, ela é usada e destruida em seguida liberando memória e executando o trabalho.
A forma geral de uso do FOR numérico é a seguinte:

For [ Local ] VariávelIndice = ValorInicial To | Until ValorFinal [Step ValorPasso]
.Comandos
Next|End

Como você pode observar o Step é opcional se o valor do "ValorPasso" for 1. Para fechar o laço do FOR use Next ou End. Eu sempre uso End pois serve para qualquer laço e não tenho que ficar lembrando de usar Next, EndIF etc, apenas uso End e pronto.


Bom pessoal, por enquanto é isso. Terminamos nossa jornada nas expressões e nos principais comandos de LOOP. No próximo artigo, vamos tratar de coleções, For.. EachIn e Vetores. Até breve!
_________________________
Composed/Posted with [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Ir para o topo Ir para baixo
 

Conhecendo a Linguagem Monkey - Parte 2

Ver o tópico anterior Ver o tópico seguinte Ir para o topo 

 Tópicos semelhantes

-
» Conhecendo a Linguagem Monkey - Parte 1
» Bom dia,Monkey Brasil!
» Bem vindo ao Monkey Brasil!
Página 1 de 1

Permissões neste sub-fórumNão podes responder a tópicos
Monkey Brasil :: Iniciante-