Skip to content

Love2D, um ótimo framework em lua

17 fevereiro 2012

Esses dias eu descobri o love2d, um framework para se programar jogos 2D em Lua. Sou suspeito pra falar, sou simpatizante da linguagem e não vou aqui entrar em detalhes sobre a mesma. O framework é muito amigável, as funções de física que você precisa num jogo estão todas lá. Minha experiência com ele foi bastante positiva, em pouco tempo eu consegui fazer meu carrinho andar pela janela, confesso que o tempo lembrando as funções trigonométricas foi maior que programando (shame on me).

Vamos lá, pra instalar no Ubuntu simplesmente digite:

apt-get install love

Ele roda nos principais sistemas operacionais, e usa a extensão .love (que é um zip). Pra rodar os games basta digitar:

love game.love

Baixe o meu exemplo aqui.

Descompacte com:

unzip car.love

Então veremos que ele tem 3 arquivos:

car.png (Uma figura de um carro meio tosco que fiz no inkscape)

main.lua (a programação do joguinho)

compile.sh (um script que criei pra facilitar os testes com o jogo, opcional.)

Abrindo então o main.lua, vemos que a estrutura básica do framework, com seus 3 métodos principais, são eles:

love.load() -> Inicia tudo que é pra ser iniciado

love.update(dt) -> É sempre disparada de tempos em tempos, esse tempo entre um update e outro é representado pelo dt.

love.draw() -> Atualiza a tela com o que foi alterado pelo update().

O joguinho é quase auto-explicativo, no load() eu defino algumas configurações do ambiente, como cor de fundo e tamanho do ambiente, carrego a imagem com .newImage() e inicio outras variáveis do meu jogo.

No update() fica a lógica principal, eu capturo os eventos das setas do teclado e uso trigonometria básica para alterar a posição (X,Y) do meu carrinho no ambiente. Também adicionei o recurso de aceleração para ficar mais legal ainda, porém não é obrigatório.

Nesse post não vou entrar em detalhes da matemática envolvida, porque daria um outro post só falando disso.

E finalmente em draw() eu atualizo a posição do carro com graphics.draw() e jogo algumas informações na tela com graphics.print().

O Wiki do projeto é muito bom, e tem toda a documentação com exemplos para você ir se acostumando com o framework. Espero que eu tenha tempo de brincar mais com ele.

From → Lua, Programacao

One Comment
  1. Epitacio permalink

    Planos para carnaval! Fazer reboot do Alex Kid in The miracle world usando este framwork.😀

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: