Table Of Content© CasadoCódigo
TodososdireitosreservadoseprotegidospelaLeinº9.610,de10/02/1998.
Nenhumapartedestelivropoderáserreproduzida,nemtransmitida,semauto-
rizaçãopréviaporescritodaeditora,sejamquaisforemosmeios: fotográficos,
eletrônicosmecânicos,gravaçãoouquaisqueroutros.
CasadoCódigo
Livrosparaoprogramador
RuaVergueiro,3185-8ºandar
04101-300–VilaMariana–SãoPaulo–SP–Brasil
CasadoCódigo
Agradecimentos
AgradeçoemespecialaoamigoMauricioTollin,daBivisSoft,comquemtiveaopor-
tunidadedeaprenderosconceitosiniciaisemdesenvolvimentodejogos.
Existem muitas outras pessoas que gostaria de agradecer, por me ajudarem de
formadiretaouindiretanesseprojeto:AdrianoAlmeida,AlbertoSouza,ChrisLeite,
DelsonLeite,EdsonSueyoshi,EleniraFerreira,GuilhermeSilveira,KarineHermes,
LuciaHermes,MauricioAniche,PauloSilveira,SheilaPaixaoeVictorHermes.
Obrigadoatodosvocês.
i
CasadoCódigo Sumário
Sumário
1 IntroduçãoaodesenvolvimentodejogosnoAndroid 1
1.1 Oquevocêencontraránestelivro . . . . . . . . . . . . . . . . . . . . . 3
1.2 Quecomeceadiversão! . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Protótipodeumjogo 9
2.1 Iniciandooprojeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Criandoabasedojogo . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Desenhandooobjetoprincipal . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Captandooscomandosdousuárioemovendoobjetos . . . . . . . . . 29
2.5 Criandooinimigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6 Detectandocolisõesemostrandoresultados . . . . . . . . . . . . . . . 35
2.7 Adicionandoumplacar . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.8 Criandobotõesdeinterfacedousuário . . . . . . . . . . . . . . . . . . 43
2.9 Adicionandomaisvida:imagensdanaveedocéu . . . . . . . . . . . 46
2.10 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3 Históriadojogo 51
3.1 14-bis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2 14-bisVS100Meteoros . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4 Telainicial:LidandocomBackground,logoebotõesdemenu 57
4.1 Iniciandooprojeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2 SobreoCocos2D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4 AssetsdaTeladeabertura . . . . . . . . . . . . . . . . . . . . . . . . . 66
iii
Sumário CasadoCódigo
4.5 Capturandoconfiguraçõesiniciaisdodevice. . . . . . . . . . . . . . . 67
4.6 Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.7 Botões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.8 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5 Teladojogoeobjetosinimigos 79
5.1 GameScene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2 Transiçãodetelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3 Engines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.4 Meteor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.5 Teladogame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.6 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6 CriandooPlayer 89
6.1 DesenhandooPlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2 Botõesdecontrole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.3 Atirando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4 Movendooplayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.5 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7 Detectandocolisões,pontuandoecriandoefeitos 107
7.1 Detectandocolisões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.2 Efeitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3 Playermorre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.4 Placar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.5 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8 Adicionandosonsemúsica 121
8.1 Executandosons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.2 Cachedesons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.3 Músicadefundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.4 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
iv
CasadoCódigo Sumário
9 Voandocomagravidade! 127
9.1 UsandooAcelerômetro . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
9.2 Controlandoainstabilidade . . . . . . . . . . . . . . . . . . . . . . . . 136
9.3 Calibrandoapartirdaposiçãoinicialdoaparelho . . . . . . . . . . . . 137
9.4 Desafioscomoacelerômetro . . . . . . . . . . . . . . . . . . . . . . . . 139
9.5 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
10 Telafinalegameover 141
10.1 Telafinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
10.2 TelaGameOver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.3 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
11 Pausandoojogo 149
11.1 Montandoateladepause . . . . . . . . . . . . . . . . . . . . . . . . . . 150
11.2 ControlandooGameLoop . . . . . . . . . . . . . . . . . . . . . . . . . 152
11.3 Adicionandoobotãodepause . . . . . . . . . . . . . . . . . . . . . . . 154
11.4 Ainterfaceentrejogoepause . . . . . . . . . . . . . . . . . . . . . . . 156
11.5 Pausandoojogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
11.6 Pausandoosobjetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
11.7 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
12 Continuandonossojogo 165
12.1 Utilizandoferramentassociais . . . . . . . . . . . . . . . . . . . . . . . 165
12.2 Highscore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
12.3 Badges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
12.4 Desafiosparavocêmelhorarojogo . . . . . . . . . . . . . . . . . . . . 168
12.5 Comoganhardinheiro? . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
12.6 Conclusão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
v
Description:Crie histórias e jogos da forma que sempre imaginou! Se você já conhece um pouco de desenvolvimento Android, vai se surpreender com este livro. De forma didática e prática, conceitos são apresentados sempre com aplicações diretas no jogo que é desenvolvido. Construa um jogo do início ao fi