© 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: