Introdução Bem vindo ao MonkeyBrasil! Nosso intuito aqui neste fórum é nos divertir criando jogos na plataforma Monkey. Mas o que é essa plataforma 'Monkey' ?
Monkey é uma nova linguagem de programação que permite que você crie aplicativos e jogos que rodarão em uma infinidade de plataformas de uma maneira simples e eficiente. Ou seja, você cria o seu jogo e o "exporta" para as várias plataformas. Veja:
IPad, IPhone, Android, XNA, HTML5, Flash, Linux etc
Obtendo o Monkey Atualmente o Monkey possui uma versão Full que é paga e que pode exportar para vários formatos e uma versão demo que exporta apenas para
HTML5. Pra você começar aprender pode usar a demo sem problemas. Clique no link abaixo para download da versão demo:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] Se quizer você pode obter a versão Full:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] Instalação A instalação da versão demo é simples. Após o download, abra a pasta onde o arquivo foi baixado, geralmente é 'downloads' e descompacte. Será criada uma pasta MonkeyDemo30. Dentro dela você verá uma extrutura como esta:
- <bananas>
- <bin>
- <docs>
- <history>
- <modules>
- <monk.app>
- <targets>
- <tmp>
monk.exe
Pra quem está começando, é importante o seguinte,
monk.exe é a IDE ou seja o editor onde você vai criar, depurar, executar e exportar seus jogos. Entre <> estão as pastas, sendo que a mais importante no começo é a
<bananas> que contem vários exemplos e a pasta
<docs> onde está a documentação (em inglês) do Monkey. Feito isso, clique em
monk.exe para iniciar a IDE. No meu caso, eu criei um link para esse executável no meu desktop para simplificar as coisas, fica a seu critério.
O Básico do básico [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]Ao entrar na IDE pela primeira vez você verá a imagem acima. Está é a documentação do Monkey separada por tópicos. É muito fácil de usar, basta clicar e ser feliz
. Uma coisa importante é que você pode deixar a 'aba' de documentação sempre aberta enquanto programa, isso facilita muito na criação do seu game.
Primeiro ExemploAgora vamos fazer o famoso "Hello World" em Money. Para isso clique
File->New para criar uma nova aba no editor e digite o código abaixo:
- Código:
-
Import mojo
Function Main ()
New HelloWorld
End
Class HelloWorld Extends App
Method OnCreate ()
'inicializacoes aqui
End
Method OnUpdate ()
'Atualizar as variaveis x, y etc
End
Method OnRender ()
'desenhamos tudo aqui
Cls 32, 64, 128 'limpa o fundo
SetColor(255, 255, 255) 'Cor atual
SetBlend(1) 'Mesclar com o fundo
DrawText("Hello World", DeviceWidth / 2, DeviceHeight / 2, 0.5, 0.5) 'Desenha o texto
End
End
Ao executar este código, a IDE vai abrir automaticamente o seu browser padrao, no meu caso aqui o Chrome, e você vai obter uma tela como esta:
Bem simples heim? Mas isso significa que funcionou! Se não deu certo pra você, pode ser que o seu browser não tenha suporte a
HTML5. Atualmente quase todos que conheço em suas atuais versões tem esse suporte.
FuncionamentoAgora vou explicar linha a linha como funciona o nosso pequeno programa. Vamos la:
- Import mojo
Esta linha importa o módulo 'mojo' que é um modo bem level responsavel por som, video e entrada de dados. Existem diversos módulos disponiveis para o Monkey, pense neles como uma extensão à linguagem. - Function Main ()
New HelloWorld
End
Aqui temos o início de tudo. A engine do Monkey sempre chama essa função Main() assim como C e Java. Ou seja basta que você coloque seu código de inicialização ali e pronto. Geralmente você cria um objeto que fara todo o trabalho, ou seja o jogo. - Class HelloWorld Extends App
O módulo mojo, é baseado em Eventos. Ou seja, precisamos interceptar certos eventos para podermos fazer com que nosso jogo "rode" corretamente. Para que isso seja possivel precisamos nos conectar a essa engine e para fazer isso criamos uma Classe que seja descendente ou que 'Estenda' a classe App do mojo. Essa linha acima faz exatamente isso. - Method OnCreate ()
//inicializações
SetUpdateRate 60
End
Esse Método OnCreate() é chamado automaticamete no inicio da aplicação para que possamos inicializar algo. Na verdade esse método é herdado de App e sobrescrevido pela nossa classe, nesse caso HelloWorld. Como ele é um método de inicialização, aproveitamos para configurar a velocidade de atualização do jogo em 60 herts. - Method OnUpdate()
//Atualizações
End
Esse método é chamado a cada "ciclo" do jogo para que você possa atualizar suas variáveis como X, Y, speed etc Se você ja usou o Game Maker é 'parecido' com Evento STEP. Lembra do "SetUpdateRate 60" la no método OnCreate() ? Então, a engine vai chamar o OnUpdate() 60 vezes a cada segundo garantindo que o seu jogo rode em uma velocidade constante em qualquer dispositivo. - Method OnRender()
'desenhamos tudo aqui
Cls 32, 64, 128 'limpa o fundo
SetColor(255, 255, 255) 'Cor atual
SetBlend(1) 'Mesclar com o fundo
DrawText("Hello World", DeviceWidth / 2, DeviceHeight / 2, 0.5, 0.5) 'Desenha o texto
End
O método OnReder() é chamado a cada ciclo para que você possa atualizar a 'tela'. Eu já coloquei cada linha comentada para que você saiba o que está acontecendo, nada de muito complicado realmente, apenas comandos simples de desenho de formas, seleção de cor e texto. Em outros tutoriais veremos esses comandos com mais detalhes.
ConclusãoAqui chegamos ao final desse nosso primeiro artigo. Espero que você tenha gostado e que já possa dar os seus primeiros passos na programação com o Monkey. Como você deve ter observado, a linguagem Monkey é orientada a objetos. Para que você possa criar jogos reais e facilmente seria muito importante que você tenha algum conhecimento sobre esse assunto. Para quem programa em Java, C# ou C++ vai ser moleza, pois a Monkey é bem mais simples que essas linguagens, para quem não tem nem idéia do que estou falando, procure um bom livro ou tutorial sobre Java ou C# ou orientação a objetos. Pretendo criar aqui no fórum exemplos de jogos bem simples, mas completos de forma que mesmo que você não tenha esse conhecimento, não vai ser muito dificil de você entender o funcionamento, entretanto para jogos mais complexos isso será impressindível. Até a próxima!