SlideShare uma empresa Scribd logo
PONTUAÇÃO E
COLISÃO
Arthur Emanuel de Oliveira Carosia
Pontuação
 O objetivo é passar pelo maior número
possível de canos
 Criar uma classe para centralizar a contagem dos
canos
 A quantidade de canos vencidos pode ser a
própria pontuação do jogador
Pontuação
Pontuação
 Os pontos aumentam cada vez que um cano
sai da tela, demonstrando a vitória do pássaro
sobre os canos.
 método na própria classe Cano que sabe se ele
saiu da tela:
 saiuDaTela
Pontuação
Pontuação
 Como a classe Canos deve ter acesso à pontuação,
podemos passá-la no construtor durante a inicialização
dos nossos elementos.
Pontuação
 Setar a variável no construtor da classe
Canos:
Classe pontuação
Exibindo na Tela
 O método drawText recebe quatro
argumentos:
 O texto a ser escrito;
 A coordenada X onde esse texto deverá ser
posicionado;
 A coordenada Y da posição do texto;
 A cor do texto.
Exibindo na Tela
Exibindo na Tela
 Paint permite configurar diversas
características relacionadas ao elemento
desenhado
 Definir seu tamanho e estilo usando os métodos
setTextSize e setTypeface
Ajustando o Loop Principal
Testando
Colisão
Colisão
 Forma de fazer o jogo terminar
 Sempre que o pássaro bater em qualquer cano
 Como descobrir que um pássaro encostou no
cano?
 Como nosso Passaro é um círculo e o Cano um
retângulo, precisamos descobrir se o círculo tem
alguma intersecção com o retângulo.
Verificando a Colisão
 Caso nosso Passaro colida com algum Cano,
podemos simplesmente cancelar o loop
principal.
 setar estaRodando para false
 chamar o método cancela
Colisão
Colisão
 inicializar essa variável verificadorDeColisao
no próprio método inicializaElementos
Verificando Colisão
Verificando Colisão
 Método temColisao, cuja função será percorrer todos os
canos e perguntar a eles se bateram no pássaro.
Verificando Colisão
 Descobrir se o Passaro bateu com o cano
atual
 Para isso, verificaremos se ele cruzou
verticalmente e horizontalmente com o cano
Verificando Colisão
 Temos canos inferiores e superiores
 Cano inferior:
 Quando a borda do pássaro toca o topo do cano.
 Altura do pássaro mais seu raio for maior que a
alturaDoCanoInferior.
Verificando Colisão
 Temos canos inferiores e superiores
 Cano superior:
 Quando a borda superior do pássaro toca a base do
cano superior.
 Subtrair o RAIO da sua altura
Verificando Colisão
Verificando Colisão
 Método cruzouHorizontalmenteComPassaro
 A distância entre a posicao horizontal do cano e
a posição X (horizontal) do pássaro ser menor
que o seu RAIO
Tela de Game Over
Tela de Game Over
 Mudar a verificação de colisão para desenhar
a tela de game over
Tela de Game Over
 Fonte do Game Over
Tela de Game Over
 Desenho em si primeiramente colocando o texto no
meio da tela, verticalmente ( tela.getAltura() / 2) à
esquerda
Tela de Game Over
Referência
 Torres, F. Jogos Android - Criando um game
do zero usando classes nativas. Casa do
Código.
PONTUAÇÃO E
COLISÃO
Arthur Emanuel de Oliveira Carosia

Mais conteúdo relacionado

Mais de Arthur 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 Jogo
Arthur 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 Jogo
Arthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
Arthur 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ário
Arthur Emanuel
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
Arthur Emanuel
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
Arthur Emanuel
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
Arthur Emanuel
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
Arthur Emanuel
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
Arthur Emanuel
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
Arthur Emanuel
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
Arthur Emanuel
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
Arthur Emanuel
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
Arthur Emanuel
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
Arthur Emanuel
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
Arthur Emanuel
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
Arthur Emanuel
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
Arthur Emanuel
 
Java: Estruturas de Repetição
Java: Estruturas de RepetiçãoJava: Estruturas de Repetição
Java: Estruturas de Repetição
Arthur Emanuel
 

Mais de Arthur Emanuel (20)

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
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
 
Java: Estruturas de Repetição
Java: Estruturas de RepetiçãoJava: Estruturas de Repetição
Java: Estruturas de Repetição
 

Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao