Autor:
Leonardo Dalmina
Fonte das Imagens:
Walter Luh
Tópicos abordados
 Introdução à linguagem Lua;
 Introdução à engine Corona SDK;
 Uso da library physics;
 Cuidados com o gerenciamento da memória;
Tópicos abordados
 Organização dos dados para ganhar performance;
 Bibliografias recomendadas.
Introdução à linguagem Lua
nil
boolean
number
string
function
table
userdata
 Sintaxe estilo JavaScript;
 Tipagem dinâmica;
 Case-sensitive;
 Objetos são tabelas.
Pequeno tamanho de código
Lua vs Outras Linguagens
Objetos em Lua são Tabelas
Métodos de Objeto
Sem a abreviação ":"
Arrays baseados em 1
Introdução à engine Corona SDK
Introdução à engine Corona SDK
Introdução à engine Corona SDK
O que é Corona?
Aumento de Produtividade
Multiplataforma
Alta Performance
#1 na maioria das Stores (Lojas)
Não apenas para Jogos
O equilíbro certo
Arquitetura
Corona Enterprise
Mais de 500 APIs
Alta variedade de Recursos
Simulador próprio
Uso simplificado de Bibliotecas
IDEs Recomendadas
 Outlaw:
http://outlawgametools.com/outlaw-code-editor-and-
project-manager/
 Lua Glider:
http://www.mydevelopersgames.com/Glider/
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Exemplo de Implementação
Adicionando mais caixas
Adicionando mais caixas
Adicionando mais caixas
Adicionando mais caixas
Invertendo a Gravidade
 Gravidade normal:
 Gravidade invertida:
Eventos
Listeners
Tipos de Eventos
 enterFrame
 system
 orientation
 accelerometer
 GPS
 heading
 touch
 timer
Touch + Multitouch
Múltiplos tamanhos de Tela
Escala de Conteúdo
Escala de Conteúdo
Retina Display
Customizando a Imagem de Retina
API da Imagem de Retina
Uso da library "physics"
 Possui muitos recursos;
 Facilmente parametrizável;
 Representa muito bem a física do ambiente;
 Não é recomendada para jogos que não simulem uma
física real.
Cuidados com o gerenciamento da
memória
 Criar rotinas de limpeza para objetos obsoletos;
 Ao excluir permanentemente um objeto, sempre
incluir além de object:removeSelf(), a atribuição
object = nil;
 Verificar a consistência dos objetos antes de utilizá-los.
Organização dos dados para ganhar
performance
 Controlar o nível de complexidade dos algoritmos
implementados:
 Evitando rotinas exponenciais (n², n³);
 Convertendo estas rotinas de modo a deixar a
complexidade linear (n log n).
Organização dos dados para ganhar
performance
 Alterar a estrutura de armazenamento e acesso dos
dados para atingir a complexidade linear:
 Evitando o uso de listas ou vetores de grande tamanho;
 Alocando estes dados em mapas (maps), utilizando o
sistema de chave e valor (key, value) através da
implementação de tabelas (tables).
Compilações Diárias
Oportunidades de Carreira
Exemplo de Sucesso
Bibliografia Recomendada
 Linguagem Lua:
http://www.amazon.com/Programming-Third-Edition-
Roberto-Ierusalimschy/dp/859037985X/
 API do SDK:
http://docs.coronalabs.com/api/index.html
 Plugins:
http://docs.coronalabs.com/plugin/index.html
Bibliografia Recomendada
 Guias:
http://docs.coronalabs.com/guide/index.html
 Tutoriais (Corona University):
http://coronalabs.com/resources/tutorials/getting-
started-with-corona/
 Blog (Indispensável):
http://coronalabs.com/blog/
Referências
 Entrevista com Robert Nay (Criador do Bubble Ball):
https://coronalabs.com/blog/2011/01/18/robert-nay-talks-
bubble-ball-before-the-3-million-downloads/
 Apresentação original do Walter Luh:
http://www.slideshare.net/CoronaLabs/corona-sdk-
demo-at-gmic-sv-october-19-2012-14873279
 Documentação Oficial do Corona SDK:
http://docs.coronalabs.com/

Criando Jogos 2D com Lua + Corona SDK