Este blog esta em reforma no momento.

Retomando os estudos Lua-Alchemy e Orientação à Objeto


Animado com o avanço do Molehill e retomando os testes com Inteligência Artificial fui rever o sistema e checar os updates do Lua-Alchemy.

Seguindo a orientação do pessoal do grupo de debates sobre Lua eu passei a usar uma biblioteca chamada LOOP para fazer a implementação de classes em Lua.

LOOP trabalha usando "módulos" assim eu posso separar as classes em arquivos.
Eu organizei as classes de forma a reaproveitar o código entre elas e defini classes para os atributos e modificadores.
Assim se um personagem precisar de resistência a veneno ou coisa assim basta acoplar o "modificador resistência a veneno" na metatabela "modificadores" do mesmo.
 
Para minha alegria o projeto Lua-Alchemy evolúio bastante oferecendo um suporte perfeito para a linguagem.
Agora eu posso carregar os arquivos .lua de qualquer maneira que precisar, eles podem ser deixados localmente no cliente através do sistema de armazenamento do Flash, podem ser carregados de uma base SQLite ou no caso que estou usando num ZIP.



A implementação do Lua-Alchemy é tranqüila, funciona como no C tendo como única diferença que nós precisamos de uma classe Assets para inserir na memória os arquivos soltos.
Eu resolvi isso com o auxílio de outra biblioteca que lê arquivos zip.
Falei um pouco da implementação dessa biblioteca na ASDevs.
Modifiquei no FlashDevelop para executar uma série de comandos de Shell antes de compilar (pre-buind commands) ele comprime em .zip todo o sistema em lua e depois incorpora o .zip dentro do SWF. O resultado é um acréscimo de 2Kb no SWF.

Comentários