Professional Documents
Culture Documents
ndice
Sobre o Autor ............................................................................................................ XIII
Sobre o Tradutor......................................................................................................... XIII
Dedicatria: ................................................................................................................................... XIV
Prefcio ......................................................................................................................... XV
Introduo ..................................................................................................................XVI
Bem vindo ........................................................................................................................... XVI
Para quem este livro foi feito ....................................................................................... XVI
Como este livro est organizado................................................................................ XVII
Convenes usadas neste livro................................................................................... XVII
Usando os exemplos de cdigo ................................................................................... XVII
Porque no usei ______ para ______ ............................................................................. XVIII
Apndices ......................................................................................................................... XVIII
Como entrar em Contato............................................................................................. XVIII
Porque Escolhi Auto-Publicar................................................................................... XVIII
Captulo 1 ........................................................................................................................ 1
Ol Mundo: Instalando e Indo em Frente! ........................................................... 1
Captulo 2 ..................................................................................................................... 19
Botes e Texto ............................................................................................................ 19
Captulo 3 ..................................................................................................................... 28
Animao, Alfa e Orientao ................................................................................. 28
Animao ............................................................................................................................... 28
Projeto 3: Animao Bsica ............................................................................................ 28
Agora voc v, Agora no v mais.......................................................................................... 31
Projeto 3.1: Diverso Alfa ............................................................................................... 31
Troca de Orientao ..................................................................................................................... 34
Projeto 3.2: Uma Nova Orientao ............................................................................... 35
Recapitulando...................................................................................................................... 40
Tarefas.................................................................................................................................... 40
Captulo 4 ..................................................................................................................... 42
Preenchendo os Campos ........................................................................................ 42
Campos de Texto................................................................................................................. 42
Projeto 4: Calculadora Simples ..................................................................................... 43
Compilando para Dispositivos ...................................................................................... 51
Apple iOS ........................................................................................................................................... 52
Compilao para o Simulador iOS.......................................................................................... 53
Compilao para Dispositivo Apple iOS .............................................................................. 53
Compilao para Dispositivo Android OS .......................................................................... 55
Tarefas.................................................................................................................................... 58
Captulo 6 ..................................................................................................................... 78
Interface do Usurio ................................................................................................ 78
Recursos ................................................................................................................................ 78
build.settings ................................................................................................................................... 79
config.lua ........................................................................................................................................... 79
Alinhamento Dinmico de Contedo.................................................................................... 81
Resoluo Dinmica de Imagem ............................................................................................. 81
Adicionando Som................................................................................................................ 83
Tipos de Arquivos de Som ......................................................................................................... 83
Tempo Tudo ................................................................................................................................. 83
Streams e Som ................................................................................................................................ 84
Projeto 6.0: Beat-box ........................................................................................................ 85
config.lua file ................................................................................................................................... 86
Arquivo build.settings ................................................................................................................. 87
Fonts Personalizadas ........................................................................................................ 90
Projeto 6.1 Fonts Personalizadas ................................................................................. 91
Recapitulando...................................................................................................................... 94
Tarefas.................................................................................................................................... 94
Captulo 7: .................................................................................................................... 96
Interfaces da Aplicao ........................................................................................... 96
Lua.......................................................................................................................................... 397
Uma Introduo ................................................................................................................ 397
O que Lua? ........................................................................................................................ 397
Lua na Prtica .................................................................................................................... 399
Tipos e Variveis .............................................................................................................. 399
Declaraes de Tipos ................................................................................................................ 400
Nil ...................................................................................................................................................... 401
Booleans ......................................................................................................................................... 401
Numeric Values ........................................................................................................................... 402
Operadores Numricos............................................................................................................ 403
Diviso por Zero ......................................................................................................................... 403
Strings ............................................................................................................................................. 404
Declarando Strings .................................................................................................................... 404
Caracteres de Escape ................................................................................................................ 405
Concatenando Strings .............................................................................................................. 406
Comparando Valores ...................................................................................................... 406
Operadores Booleanos ................................................................................................... 407
O operador and (E) .................................................................................................................... 408
O operador or (OU) ................................................................................................................... 408
O operador not (Negao) ...................................................................................................... 408
Empilhando Operadores Booleanos .................................................................................. 409
Funes de Dados em Lua ............................................................................................. 410
Funes String ............................................................................................................................. 410
Achando o comprimento de uma String .......................................................................... 410
Substituio Global .................................................................................................................... 410
Encontrando um padro em uma String.......................................................................... 411
Achando um Padro em uma String .................................................................................. 412
Obtendo os valores em byte de Caracteres..................................................................... 413
Obtendo strings de bytes ........................................................................................................ 413
Trocando Maisculas e Minsculas ................................................................................... 413
Retornando Parte de uma String ......................................................................................... 414
Funes Matemticas ............................................................................................................... 414
Funo .................................................................................................................................. 415
Parmetros ......................................................................................................................... 415
Retorna................................................................................................................................. 415
Um Aviso sobre Blocos de Cdigo em Lua ............................................................... 416
Diretivas Condicionais ................................................................................................... 417
A Diretiva if ................................................................................................................................... 417
Usando else ................................................................................................................................... 417
Diretivas If Aninhadas.............................................................................................................. 418
Loops ..................................................................................................................................... 419
Lua.......................................................................................................................................... 432
Advanced Topics............................................................................................................... 432
Understanding Variables............................................................................................... 432
Global and Local Variables ..................................................................................................... 433
Understanding Scope ............................................................................................................... 434
Functions and Variable Scope .............................................................................................. 436
Closures .......................................................................................................................................... 437
Garbage Collection ........................................................................................................... 438
Functions with Variable Arguments ......................................................................... 439
The VarArg Operator ...................................................................................................... 441
Select................................................................................................................................................ 441
Recursion ............................................................................................................................ 442
The Table Type .................................................................................................................. 444
Associativity ................................................................................................................................. 445
Tables as Arrays................................................................................................................ 447
Array Indices ............................................................................................................................... 447
Creating Arrays .......................................................................................................................... 447
Arrays are Tables Too! .......................................................................................................... 448
Unpacking Arrays....................................................................................................................... 450
Finding the Length of an Array ............................................................................................ 450
Looping Over Arrays with ipairs ......................................................................................... 450
Adding Values to Arrays.......................................................................................................... 451
Removing Values from Arrays.............................................................................................. 452
Converting Arrays to Strings................................................................................................. 453
Sorting Arrays.............................................................................................................................. 454
Sobre o Autor
Brian Gene Burton, Ed.D. um professor, autor, e desenvolvedor de jogos. Ele
criou graduaes de jogos em duas universidades e gosta de pesquisar e
brincar com ambientes virtuais. Brian apresenta e publica
internacionalmente suas pesquisas e gosta de compartilhar o que ele
aprendeu sobre desenvolvimento de jogos e mobilidade. Quando no est
viajando ou ensinando, ele pode ser encontrado em sua casa nas Montanhas
Ozark no Missouri com sua bela esposa h mais de 25 anos, Rosemary.
Sobre o Tradutor
Luiz Fernando Duarte Jnior consultor, empreendedor e professor
universitrio na regio de Porto Alegre-RS, Brasil.
Bacharel em Cincia da Computao com ps-graduao em Computao
Mvel, aficcionado por desenvolvimento para smartphones desde 2006. De
l para c, j desenvolveu para as plataformas JME, PalmOS, Blackberry,
Android e iOS, tendo ministrado dezenas de palestras e cursos em faculdades
e escolas tcnicas de seu estado. Ele adora compartilhar seu conhecimento e
um pouco de seu trabalho pode ser conhecido no seu blog pessoal
LuizTools.com
Dedicatria:
Eu dedico este livro minha amada esposa cujo suporte e encorajamento
manteram-me focado e escrevendo.
Um agradecimento especial aos meus estudantes e comunidade Corona
pelo seu suporte e requisies por detalhes especficos que ajudaram
bastante no desenvolvimento deste livro.
Os loops sonoros e musicais foram graciosamente fornecidos por Shaun Reed
da Constant Seas. Voc pode checar sua banda em
http://www.constantseas.com
Grficos Tileset do Reiners Tilesets (http://www.reinerstilesets.de) foram
usados com permisso.
Todas outras imagens (a menos que especificado) e capa foram desenhados
por Brandon Burton.
Ajuda na edio e formatao provida por Brianna Burton
(http://www.LiteraryDiaries.com )
Um agradecimento Luiz Fernando Duarte Jnior, webmaster do blog
http://luiztools.com, por esta verso em portugus do livro.
Prefcio
Bem vindo ao Corona!
Seja voc somente um iniciante ou um programador experiente, Corona SDK
uma maneira fantstica de desenvolver aplicaes mveis ricamente
interativas. Eu desenvolvi Corona com os princpios de executar e testar.
Desta maneira, voc estar apto a iterar e construir algo rapidamente. Por
exemplo, em poucas linhas de cdigo, voc pode ter objetos quicando uns
contra os outros.
Hoje, Corona SDK a plataforma lder no desenvolvimento multi-plataforma
de jogos, aplicativos e eBooks. Como resultado formou-se uma enorme
comunidade colaborativa de desenvolvedores qual voc pode se juntar.
Eles possuem todos os histricos e nveis de experincia, de estdios
independentes, a adolescentes, octagenrios, editores e agncias digitais.
Neste livro, voc ver que Corona lhe uma plataforma simples e poderosa
para que voc pegue sua ideia e construa grandes aplicativos. Se voc usou
outras tecnologias, eu acho que voc ficar surpresso com o quo
rapidamente ver algo interessante na tela.
Ok, hora de comear. Com a ajuda do Corona, espero que voc se divirta
trazendo vida suas ideias.
Boa programao!
Walter Luh
Criador do CoronaSDK
Introduo
Bem vindo
Bem vindo ao Criando Aplicaes Mveis com Corona. Este livro o
resultado de anos de desenvolvimento para dispositivos mveis. No incio de
2010 comecei a buscar uma maneira de desenvolver melhor. A melhor
maneira. Buscava uma ferramenta que me permitisse desenvolver mais
rapidamente para mltiplas plataformas de dispositivos mveis. Estava
cansado e frustrado por ter de reescrever as mesmas aplicaes para iPhone,
iPad ou Android. Depois de tentar diversas ferramentas e ambientes de
desenvolvimento, eu encontrei o Corona SDK da Corona Labs
(http://www.coronalabs.com). Enquanto ele ainda estava no incio do
desenvolvimento, ele mostrava que o time da Corona Labs estava
comprometido a construir um conjunto de ferramentas de qualidade e que
uma comunidade devotada de desenvolvedores estava rapidamente se
formando em volta deste grande SDK (Kit de Desenvolvimento de Software).
Nos dias iniciais de meu aprendizado sobre Corona, eu me foquei em criar
tutoriais (disponveis no meu website
http://www.BurtonsMediaGroup.com/blog, enquanto que tutoriais em
Portugus podem ser encontrados no blog do tradutor:
http://www.luiztools.com). Depois de ensinar Corona a vrias turmas de
desenvolvimento mvel e com o encorajamento de meus estudantes, eu
iniciei o processo de criao do livro que poderia ser usado como um recurso
de ensino para o Corona SDK. Espero que voc goste de aprender sobre
Corona assim como eu!
Atenciosamente,
Brian G. Burton, Ed.D.
Apndices
Apndices A e B contendo informaes sobre a linguagem de programao
Lua foram fornecidos pela Corona Labs e esto includos com permisso.
Enquanto efetuamos algumas edies no contedo para melhorar a
legibilidade, o contedo original e os exemplos ainda permanecem.
Captulo 1
Ol Mundo: Instalando e Indo em Frente!
Voc teve uma grande idia de jogo ou aplicao mvel. Maravilha! Agora,
como voc cria o mesmo e distribui-o para iPhone/Droid/iPad/Nook, (ou
qualquer dispositivo que voc escolha)? Existem muitos dispositivos para
escolher. Qual plataforma a melhor para minha aplicao?
Com tantas plataformas para escolher (Android, iOS, RIM, Windows,
nomeando algumas poucas), a escolha da plataforma para desenvolver pode
ser muito difcil. Cada plataforma usa uma linguagem diferente, tem uma API
diferente (Interface de Programao de Aplicaes) e requisitos. Devemos
nos prender a uma plataforma de desenvolvimento? Devemos escolher
somente uma?
Felizmente com o advento de ferramentas como Corona da Corona Labs,
agora possvel desenvolver para mltiplas plataformas ao mesmo tempo.
Porque escrever uma vez e publicar para dispositivos diferentes a melhor
soluo no mundo de desenvolvimento mvel.
Corona da Corona Labs permite que os camaradas desenvolvedores
publiquem para dispositivos Android e iOS (Apple), tanto smartphones
quanto tablets. Este livro foi escrito para ajudar estudantes de todo lugar a
obterem as habilidades necessrias para transformarem sua idia em uma
aplicao usando Corona SDK.
2
if/else, um loop ou uma funo, voc provavelmente no est preparado para
este livro.
Enquanto eu fiz todas as tentativas de cobrir o bsico que a maioria dos
estudantes querem aprender durante o primeiro semestre de um curso de
desenvolvimento mvel, devido a problemas com tempo e espao, somente
os mais importantes puderam ser includos. Existe um segundo volume em
desenvolvimento que cobrir aspectos mais avanados e um volume voltado
exclusivamente a projetos de jogos com Corona.
Iniciando
Corona: Alguma Histria
Corona Labs foi criada em 2008 como uma companhia financiada por
investidores de risco em Palo Alto, Califrnia. Antes de Corona, o time da
Corona Labs foi responsvel por criar muitas ferramentas padres da
indstria que tenho certeza de que voc conhece. No tempo que eu estive
desenvolvendo aplicaes com Corona, eu encontrei na Corona Labs um dos
negcios mais amigveis e teis que eu tive o prazer de trabalhar. Alm disso,
a comunidade muito amigvel e solcita. Se voc decidir juntar-se
comunidade Corona, esteja certo de continuar com este grande esprito de
solidariedade!
Software: Corona
No surpresa de que voc precisar do Corona SDK para comear. Para
aprender, eu recomendo baixar a verso trial (de teste) no site da Corona
Labs http://www.CoronaLabs.com/. Clique no boto de download e registrese (independente se um usurio pagante ou gratuito). Se voc for um
estudante ou universitrio, voc pode obter um desconto acessando
http://www.coronalabs.com/store/corona-for-education/.
Software: Android
3
Para comear o desenvolvimento de aplicaes para Android com Corona,
voc no precisar de nenhum software adicional Android. Entretanto, voc
precisar do Java SDK (tipicamente conhecido como JDK) para estar apto a
compilar em ambiente Microsoft Windows. V em
http://www.oracle.com/technetwork/java/javase/downloads/index.html e
baixe a Java Platform Standard Edition clicando no boto Download JDK.
Aviso: Voc somente precisa baixar o download do JDK se voc est em um
sistema Microsoft Windows. Se voc est usando um Macintosh com OS X, ele
j est instalado.
Exemplos e Imagens
Um ltimo download deve ser feito: os exemplos de cdigos, imagens e
outras ferramentas que voc pode precisar com os projetos esto listadas
neste livro. Eles esto todos disponveis em
http://www.BurtonsMediaGroup.com/books.
Software: iOS
Para desenvolvimento direto no simulador, voc no tem que baixar nada da
Apple. Entretanto, quando for hora de testar em um dispositivo ou preparar a
aplicao para o iTunes, voc necessitar do Apple iOS SDK. Se voc j um
desenvolvedor Apple, voc j est apto a realizar a instalao. Se voc no
um desenvolvedor Apple atualmente (U$99/ano para uma assinatura padro
de desenvolvedor), voc pode se registrar como desenvolvedor gratuito e
baixar o Xcode atravs da Apple App Store por U$4.99).
4
dispositivo iOS se voc estiver usando um Mac. Voc tambm pode criar
aplicaes Android utilizando um Mac.
Se voc tem somente um sistema Windows, voc pode desenvolver e publicar
aplicaes Android. Voc tambm est apto a desenvolver para dispositivos
iOS, entretanto no poder publicar e vender seu trabalho para iOS fora de
um Mac. Eu uso um MacBook e um PC, regularmente variando entre ambos
durante o desenvolvimento de aplicaes.
Matriz de Hardware Necessrio:
Hardware
Android OS
Desenvolver
Instalar
Macintosh
X
X
Windows PC
X
X
Apple iOS
Desenvolver
Instalar
X
X
X
Android
Corona somente compila para Android OS 2.2 ou superiores. Qualquer
dispositivo que voc planeje utilizar deve ter um processador ARM V7. Existe
uma infinidade de dispositivos que preenchem estes requisitos, ento voc
no ter problema em encontrar um para executar seus testes.
iOS
Para desenvolvimento no iOS, voc precisar de uma licena de
desenvolvedor e tambm de um iPhone, iPod Touch, ou iPad. Obviamente,
tendo um telefone antigo ou iPad uma boa idia para testar FPS (Frames
por Segundo) se sua aplicao usa grficos intensamente. recomendado
que voc use a verso mais recente do iOS em seus dispositivos. Para estar
apto a instalar sua aplicao em um dispositivo iOS, voc precisar de um
Mac e uma conta de desenvolvedor Standard, Enterprise, ou University da
Apple.
Consideraes de Publicao
Eu estou certo de que voc j est imaginando as primeiras vendas de sua
aplicao. Mas antes que voc possa vend-la, voc precisar decidir aonde
voc ir public-la. Existem muitas consideraes especficas de cada
distribuidor que voc precisa ter em mente.
Android (Google)
O mercado para Android muito diferente da loja do iTunes da Apple. No
mercado Android voc tem inmeros distribuidores diferentes disponveis
para vender suas aplicaes, incluindo a Google Play
(http://pay.google.com), Amazon, Barnes & Noble, entre outros. Voc
precisar criar uma conta com cada distribuidor que voc deseja utilizar
como canal de vendas.
Por U$25 voc pode criar uma conta de desenvolvedor para Android com o
Google. Voc NO tem que se cadastrar em nada at que esteja pronto para
comear a vender suas aplicaes. Para criar sua conta visite
http://developer.android.com/index.html.
Uma vez que voc tenha sua conta configurada voc precisar decidir se sua
aplicao ser gratuita ou paga. Alm disso, a maioria das lojas de aplicaes
lhe cobrar algo em torno de 30% sobre as vendas por estar lhe oferencendo
os servios. Em outras palavras, se voc cobra 99 centavos por uma
aplicao, voc receber 69.3 centavos por cada venda.
iOS (Apple)
Uma das maiores vantagens do mercado para iOS que h somente uma loja
de aplicativos. Desenvolver aplicaes para o iOS lhe custar U$99 por ano
para uma licena padro de desenvolvedor Apple. Existem licenas
empresarias que somente so necessrias caso voc desenvolva em uma
grande empresa. Para as finanas de um estudante, a taxa de U$99 pode ser
muito cara, ento eu recomendo esperar tanto quanto possvel antes de
adquirir a licena que deve ser renovada anualmente. Voc pode saber mais
sobre licenas de desenvolvimento e sobre o iOS SDK em:
http://developer.apple.com/programs/register/. Apple tambm lhe cobrar
30% de comisso sobre as suas vendas.
7
Xcode. claro qu voc pode ignorar todos esses e usar o bloco de notas ou
textedit se voc desejar.
BBEdit (Mac) por Bare Bones Software, U$99.99.
Eu tenho usado BBEdit no meu Mac h algum tempo e meu editor favorito
quando estou trabalhando no Mac. BBEdit tem configuraes internas
(incluindo Lua), que permitem facilmente a voc definir a linguagem na qual
voc est desenvolvendo. http://www.barebones.com
Outlaw (antigo Corona Project Manager) (Mac/Win) por J.A. Whye,
U$49.99. Outlaw tem um editor interno e juntamente com sua grande
habilidade de simplificar o gerenciamento de um projeto Corona, o custo
benefcio timo. Veja o Captulo 18 para obter um cupom e economizar
30% no Outlaw. http://www.outlawgametools.com
Eclipse (Mac/Win) Cdigo aberto, $0.
Eclipse o editor que uso quando estou trabalhando no meu PC. Eclipse tem
uma grande comunidade de suporte. Embora Eclipse tenha sido
originalmente desenvolvido como uma IDE Java (Ambiente de
Desenvolvimento Integrado) ele atualmente uma base para muitos editores
no mercado. Um plugin para Lua/Corona est disponvel. http://eclipse.org
Notepad++ (Win) Cdigo aberto, $0
Um editor de linguagens popular e de cdigo aberto para ambientes PC.
http://notepad-plus-plus.org/
Sublime (Mac/Win) trial ilimitado, $70
Sublime atualmente o editor oficial para Corona SDK. Corona Labs criou
um plugin que simplifica muitas tarefas. Voc pode baixar o Sublime em:
http://www.sublimetext.com/ e o plugin do Corona em:
http://coronalabs.com/products/editor/
TextMate (Mac) por Micromates, 39 (cerca de U$57). Textmate muito
popular na comunidade Corona com um plugin disponvel no site da Corona
Labs. http://macromates.com
TextWrangler (Mac) por Bare Bones Software, $0.
8
TextWrangler tem a vantagem de ser um editor gratuito para o Mac. Embora
ele no tenha todos os recursos do BBEdit, ele far o trabalho necessrio e
oferece um suporte integrado ao Lua. http://www.barebones.com
Xcode (Mac) por Apple, $0*.
Xcode uma parte integrante do iOS SDK. Se voc est acostumado a
desenvolver utilizando Objective-C, Xcode a escolha natural. Enquanto
Xcode est includo no iOS SDK, ele somente gratuito se voc j possui uma
conta de desenvolvedor na Apple. Se voc possuir somente uma conta
gratuita, o iOS SDK custa U$4.99 (incluindo o Xcode).
Dica do Tradutor: eu uso atualmente o Lua Glider, que uma verso
modificada do NetBeans, popular IDE desenvolvida em Java. Ele possui
gerenciador de projetos e arquivos, depurador e editor de cdigo com
autocomplete e highlight syntax. Sua verso gratuita o suficiente para
desenvolvedores independentes.
Configurando Corona
A instalao do Corona SDK algo bem direto. Somente clique no boto de
download em http://www.coronalabs.com, registre-se, selecione sua
plataforma (Mac ou Windows) e siga as orientaes abaixo baseado em seu
sistema operacional.
Macintosh
Depois que voc executar o arquivo baixado e aceitar a licena do software,
arraste a pasta do Corona SDK para a pasta Aplicaes.
10
Isto ir copiar todos os arquivos do Corona SDK para sua pasta de aplicaes.
Quando abrir a pasta do Corona SDK, voc encontrar amostras de cdigo,
ferramentas, uma biblioteca de recursos bem como o Terminal e o Simulator
(as ferramentas primrias de desenvolvimento que utilizaremos).
Windows
Corona SDK para Windows possui baixos requisitos de hardware:
Sistema operacional Windows 7, Vista, ou XP
Processador de 1 GHZ (recomendado)
38 MB de espao em disco (mnimo)
1 GB de memria RAM (recomendado)
Sistema de grficos OpenGL 1.3 ou superior
Em todas as instalaes que eu fiz de Corona, o nico problema que eu tive
foi quando meu sistema no possua OpenGL 1.3 ou superior instalado. Isto
foi facilmente corrigido baixando drivers de vdeo atualizados para meu
sistema. Corona SDK executa com verses antigas de OpenGL, porm com
baixa performance. Voc deve atualizar seus drivers de vdeo o quanto antes
para corrigir o problema se ele existir. Mais informaes sobre OpenGL
podem ser encontradas em http://www.opengl.org.
Se voc ainda no baixou o Java JDK (Kit para Desenvolvedores Java), voc
deve faz-lo agora. V em
http://www.oracle.com/technetwork/java/javase/downloads/index.html e
baixe o Java Platform Standard Edition clicando no boto Download JDK. Na
prxima pgina, selecione Windows x86 na lista de downloads disponveis.
O JDK obrigatrio para compilar aplicaes para dispositivos em sistemas
Microsoft Windows. Este um download gratuito no site da Oracle. Depois
qeu voc tiver baixado o instalador, siga os procedimentos normais para
instalar o JDK no seu sistema.
11
que voc se autentique com as informaes de registro que voc usou no site
da Corona Labs. Complete estas informaes uma nica vez e voc estar
preparado para continuar.
12
Configuraes do Projeto
Se voc seguir este processo cada vez que voc iniciar um novo projeto, ele
tornar sua vida muito mais fcil:
Primeiro, crie uma pasta para o projeto chamada Hello World (Ol Mundo
em Portugus). Ela pode ficar em sua rea de Trabalho ou onde preferir. Eu
coloco todos meus projetos Corona em uma pasta Projetos Corona.
Abra seu editor favorito (eu estou usando BBEdit nos screenshots). Crie um
arquivo em branco e salve como main.lua na pasta Hello World que acabou
de criar.
13
14
A seguir, voc precisar executar o Corona. Se voc est em um ambiente
Microsoft Windows, execute o Corona Simulator. Em um Macintosh, execute
o Corona Terminal.
15
Quando voc est abrindo um projeto, voc estar apto a selecionar qual
dispositivo voc gostaria de simular no Corona Simulator. Por enquanto
selecione iPhone ou Droid e clique no boto Open.
Tao logo voc abra o projeto, o simulador ir executar o mesmo.
Voc percebeu? Est certo, nada aconteceu...no simulador. Olhe na janela do
Terminal. No final voc ver seu Hello World exibido.
16
Parabns! Voc fez sua primeira aplicao Corona! Agora antes de ficar
desapontado, voc deve aprender a usar uma ferramenta muito importante
para descobrir problemas em suas aplicaes. Quando algo no est
funcionando corretamente ou no est exibindo o que voc esperava, voc
pode mandar a si mesmo mensagens atravs da janela do Terminal. Acredite
quando eu digo que este comando ir lhe salvar horas de dores-de-cabea
com erros ocultos!
Aviso: Se voc ainda no viu nada, existem
dois erros comuns que as pessoas cometem:
1) eles no salvam seu arquivo main.lua (eu
ainda fao isso) ou 2) quando salvam o
arquivo main.lua, ele no salvo como um
arquivo de texto.
17
Primeiro ns criamos uma varivel local textobj. Ns definimos que textobj
igual ao objeto que ns criamos ao chamar o mtodo display.newText,
passando ele o texto Hello World, a localizao X & Y (partindo do topo
esquerdo da tela), fonte e 24 (o tamanho do texto a ser criado).
Os parmetros do display.newText so:
display.newText(text, X, Y, font, text size)
No parmetro font, voc pode usar o padro do sistema passando
native.systemFont ou native.systemFontBold. Voc tambm pode entrar o
tipo de fonte como uma string como arial ou arial black. Se voc definir
este parmetro como nil, ele ir assumir native.systemFont.
Na segunda linha de comando, ns definimos a cor do textobj que ser criada
usando o sistema de cores R, G, B (cada cor (vermelho, verde e azul) tendo
um valor entre 0 255) para branco:
textobj:setFillColor(R, G, B)
Por padro, objetos de texto so brancos, ento no precisvamos realmente
fazer alguma coisa para torn-lo branco. Apenas queria lhe mostrar como
configurar a cor de um objeto de texto quando voc cria um. Mais tarde
veremos como esconder um objeto de texto aos poucos (ou exib-lo).
Agora voc fez sua primeira aplicao REAL com Corona!
Aviso: Quando se copia cdigo de um site (ou mesmo deste livro), algumas
vezes as aspas podem trocar de aspas diretas para aspas inteligentes. Isto
IR causar erros no Corona. Esteja certo de que suas aspas so sempre "" e
nunca .
Objetos
Voc deve ter percebido o uso do termo objeto espalhado pelo texto. O termo
objeto denota algo que est sendo usado dentro do seu projeto; texto, botes,
18
ou sons, eles so todos objetos. Como na vida real, eu posso mover ou
interagir com um objeto (uma lmpada, mesa ou carro), um objeto em seu
software qualquer coisa que voc possa interagir.
Objetos do mundo real tem propriedades que ajudam a descrever a
localizao do mesmo, cor, ou qualquer coisa que possa ser alterada sobre o
objeto. Se eu tenho um carro, eu posso descrever a sua localizao por sua
latitude e longitude.
Em programao (incluindo Corona), ns estamos aptos a interagir com cada
propriedade de um objeto para realizar alteraes; como quando um textobj
foi criado, ns definimos as propriedades x, y, font, e size (tamanho) bem
como a string que seria exibida.
Recapitulando
Este foi um captulo bem atarefado! Corona deve estar instalado em seu
sistema agora, voc foi introduzido aos editores, viu consideraes de
hardware e informaes de publicao. Ns ainda desenvolvemos duas
aplicaes! A primeira introduzindo o importantssimo comando print, e a
segunda exibindo texto de verdade no simulador. Finalmente, o conceito de
um objeto na programao foi brevemente mencionado.
Tarefas
1. Tente vriaos erros de digitao e veja as mensagens de erros
resultants na janela do terminal.
a. Erre o nome newText. Qual o resultado?
b. Erro o native.systemFont. Qual o resultado?
c. Tente setFillColor. Qual o resultado?
2. Troque o objeto de texto para vermelho.
3. Reposicione o texto no rodap do simulador sem que a letras saiam
for a da tela.
4. Coloque 5 diferentes mensagens em diferentes lugares na tela, cada
uma com font, tamanho e cor diferentes.