SlideShare uma empresa Scribd logo
1 de 36
LAYOUT E SOM
Arthur Emanuel de Oliveira Carosia
Layout
Layout
 Melhorar o aspecto visual dos elementos do
Jumper, substituindo por imagens:
 o circulo do Pássaro
 os retângulos dos Canos
Todas as imagens que usaremos já estão no zip em
https://github.com/felipetorres/jumper-arquivos
Layout do Pássaro
 Inserir a imagem passaro.png da pasta drawable-nodpi.
 Carregá-la e redimensioná-la por código.
Layout do Pássaro
 Ajustar a instância da classe Pássaro, passando o
context.
Layout
 Porem, ao lidar com imagens (bitmaps), a referencia para desenho
e o canto superior esquerdo
 Para desenhar o círculo, antes passávamos o centro.
 Como ela tem RAIO*2 de altura e largura, basta subtrair RAIO de
ambas as coordenadas e teremos o bitmap centralizado:
Layout
Layout de Cano Inferior
 Problema:
 trocar nossos retângulos verdes por imagens
sendo que os canos possuem alturas variadas,
calculadas aleatoriamente
Layout de Cano Inferior
 Problema
 trocar nossos retângulos verdes por imagens
sendo que os canos possuem alturas variadas,
calculadas aleatoriamente
 Solução
 termos apenas uma imagem com apenas pixel
de altura, que será esticado para o mesmo
tamanho dos retângulos iniciais
Layout de Cano Inferior
 Para o cano inferior,
vamos redimensionar
para o tamanho
correto.
 As dimensoes estão
guardadas em:
 LARGURA_DO_CANO
 alturaDoCanoInferior
Layout de Cano Inferior
 Ajustando o método desenhaCanoInferiorNo
Ajustando a classe Canos
Ajustando a classe Canos
Ajustando a classe Canos
Ajustando a classe Canos
Resultado
Layout de Cano Superior
 Para os canos superiores, vamos fazer da
mesma forma, redimensionando-os.
Layout de Cano Superior
 Como esse retângulo esta com seu canto
superior esquerdo em (posicao, 0), teremos de
usar essa mesma coordenada para nosso
bitmap.
Resultado Final do Layout
Som
Som
 Sons para os principais momentos do jogo:
 Pulo do pássaro,
 Colisão;
 Aumento da pontuação.
Som
 Classe MediaPlayer do proprio Android:
 Ideal para programas de música mais complexos
 Classe SoundPool
 Fornece uma forma mais leve para tocar sons de
curta duração
SoundPool
 Construtor
 Tipo de som que será tocado,
 Quantos arquivos simultâneos poderão ser
tocados
 Três sons possíveis
 pulo do pássaro,
 colisão
 aumento de pontuação
Som
 Método load.
 Carrega o som a ser tocado
 Parâmetros:
 context
 arquivo de som (pasta res/raw)
 Retorna um id que deve ser usado sempre
que quisermos tocá-lo.
Som
 Método play
 Toca o som
 Parâmetros
 O id do som;
 O volume esquerdo;
 O volume direito;
 A prioridade do som;
 O loop (1 para loop infinito, 0 para tocar uma única
vez);
 A velocidade do som (lembre-se: 1 e a velocidade
normal).
Som de Pulo
Som de Pulo
 No método pula da classe Pássaro
chamaremos o método toca:
Som de Pulo
 Ajustando a classe Game
Som de Pontuação
 O som de pontuação segue o mesmo padrão.
Som de Pontuação
 Chamar o método toca no local em que o
jogador ganha pontos
Som de Pontuação
 Ajustando a classe Game
Som de Colisão
Som de Colisão
 Mesmo padrão...
Som de Colisão
 Chamarmos o método toca onde quisermos tocar o som
da colisão.
Exercício
 Incrementar o jogo dos mosquitos com os
seguintes elementos:
 Som ao acertar o mosquito;
 Som do mosquito voando.
LAYOUT E SOM
Arthur Emanuel de Oliveira Carosia

Mais conteúdo relacionado

Mais de Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningArthur Emanuel
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosArthur Emanuel
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com FacebookArthur Emanuel
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaArthur Emanuel
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuArthur Emanuel
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoArthur Emanuel
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosArthur Emanuel
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoArthur Emanuel
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoArthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioArthur Emanuel
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, FormulárioArthur Emanuel
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPSArthur Emanuel
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo WebservicesArthur Emanuel
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoArthur Emanuel
 

Mais de Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 

Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som

  • 1. LAYOUT E SOM Arthur Emanuel de Oliveira Carosia
  • 3. Layout  Melhorar o aspecto visual dos elementos do Jumper, substituindo por imagens:  o circulo do Pássaro  os retângulos dos Canos Todas as imagens que usaremos já estão no zip em https://github.com/felipetorres/jumper-arquivos
  • 4. Layout do Pássaro  Inserir a imagem passaro.png da pasta drawable-nodpi.  Carregá-la e redimensioná-la por código.
  • 5. Layout do Pássaro  Ajustar a instância da classe Pássaro, passando o context.
  • 6. Layout  Porem, ao lidar com imagens (bitmaps), a referencia para desenho e o canto superior esquerdo  Para desenhar o círculo, antes passávamos o centro.  Como ela tem RAIO*2 de altura e largura, basta subtrair RAIO de ambas as coordenadas e teremos o bitmap centralizado:
  • 8. Layout de Cano Inferior  Problema:  trocar nossos retângulos verdes por imagens sendo que os canos possuem alturas variadas, calculadas aleatoriamente
  • 9. Layout de Cano Inferior  Problema  trocar nossos retângulos verdes por imagens sendo que os canos possuem alturas variadas, calculadas aleatoriamente  Solução  termos apenas uma imagem com apenas pixel de altura, que será esticado para o mesmo tamanho dos retângulos iniciais
  • 10. Layout de Cano Inferior  Para o cano inferior, vamos redimensionar para o tamanho correto.  As dimensoes estão guardadas em:  LARGURA_DO_CANO  alturaDoCanoInferior
  • 11. Layout de Cano Inferior  Ajustando o método desenhaCanoInferiorNo
  • 17. Layout de Cano Superior  Para os canos superiores, vamos fazer da mesma forma, redimensionando-os.
  • 18. Layout de Cano Superior  Como esse retângulo esta com seu canto superior esquerdo em (posicao, 0), teremos de usar essa mesma coordenada para nosso bitmap.
  • 20. Som
  • 21. Som  Sons para os principais momentos do jogo:  Pulo do pássaro,  Colisão;  Aumento da pontuação.
  • 22. Som  Classe MediaPlayer do proprio Android:  Ideal para programas de música mais complexos  Classe SoundPool  Fornece uma forma mais leve para tocar sons de curta duração
  • 23. SoundPool  Construtor  Tipo de som que será tocado,  Quantos arquivos simultâneos poderão ser tocados  Três sons possíveis  pulo do pássaro,  colisão  aumento de pontuação
  • 24. Som  Método load.  Carrega o som a ser tocado  Parâmetros:  context  arquivo de som (pasta res/raw)  Retorna um id que deve ser usado sempre que quisermos tocá-lo.
  • 25. Som  Método play  Toca o som  Parâmetros  O id do som;  O volume esquerdo;  O volume direito;  A prioridade do som;  O loop (1 para loop infinito, 0 para tocar uma única vez);  A velocidade do som (lembre-se: 1 e a velocidade normal).
  • 27. Som de Pulo  No método pula da classe Pássaro chamaremos o método toca:
  • 28. Som de Pulo  Ajustando a classe Game
  • 29. Som de Pontuação  O som de pontuação segue o mesmo padrão.
  • 30. Som de Pontuação  Chamar o método toca no local em que o jogador ganha pontos
  • 31. Som de Pontuação  Ajustando a classe Game
  • 33. Som de Colisão  Mesmo padrão...
  • 34. Som de Colisão  Chamarmos o método toca onde quisermos tocar o som da colisão.
  • 35. Exercício  Incrementar o jogo dos mosquitos com os seguintes elementos:  Som ao acertar o mosquito;  Som do mosquito voando.
  • 36. LAYOUT E SOM Arthur Emanuel de Oliveira Carosia