Implementação Colisão
Por: Bruno Sepulveda • 5/6/2016 • Monografia • 3.384 Palavras (14 Páginas) • 247 Visualizações
Aplicação Mobile para implementação de Colisão
Tema: Jogo em Plataforma Android
Artigo Final – Aplicativo Runner
Paulo Henrique Maia de Lima – 18285
Bruno Moreira Rizzato - 16823
Introdução
O Projeto atual visa a Implementação de um aplicativo desenvolvido para plataforma Android no estilo “Runner”[1] onde o objetivo principal é a utilização da técnica de colisão visando implementar o conteúdo estudado na disciplina de Computação Gráfica. Todo desenvolvimento será realizado utilizando a IDE Android Studio. Na aplicação desenvolvida o personagem principal percorrera o cenário partindo de um ponto inicial A para um ponto final B, tendo nesse trajeto obstáculos e inimigos a serem desviados. Dentre as ações do Personagem temos corrida (ocorrendo de forma automática), salto (ação definida pelo jogador), coleta de itens e morrer. Como obstáculos temos objetos presentes no cenário e inimigos que aumentaram de dificuldade progressivamente.
Palavras chave: Computação Gráfica, Android, Colisão, Runner
Sumário
Índice de assuntos e de desenhos
1. Descrição do Trabalho
Para o decorrente projeto, nesta sessão será descrito de modo detalhado e objetivo de onde partiremos e onde esperamos chegar.
O desenvolvimento se trata de uma aplicação mobile nos moldes “Runner”, ou seja o personagem se movimenta sempre a frente de modo automático. O objetivo principal do trabalho é utilizar as técnicas de colisões. Usando essas técnicas, o personagem poderá executar as seguintes funções:
- Coletar Itens: Ao colidir com determinados collectibles presentes no cenário, o usuário acumula pontos, que por usa vez terá por finalidade determinar o vencedor.
- Morrer: Caso o personagem colida de forma sucessiva aos obstáculos da pista, de modo a chegar ao fim de sua barra de energia vital, ele então consequentemente será dado como morto.
Além das interações permitidas pelas colisões o personagem pode fazer também as seguintes ações. Sendo estas descritas abaixo:
Saltar: Ao deslizar tocar no monitor o usuário será capaz de saltar obstáculos presentes no cenário
- Pontuar: De acordo com o que o personagem percorre o cenário e coleta moedas sua pontuação
A seguir, o diagrama de Casos de Uso nos resume de modo claro e objetivo as funcionalidades listadas acima.
[pic 1]
Figura 1: Diagrama de Casos de Uso
2. Movimentação de cenário
2.1. Parallax
Quando qualquer coisa se move na sua frente, principalmente quando seu campo de profundidade é maior, você pode observar que à medida que avança os objetos ao seu lado se movem em velocidades diferentes, ou seja, o objeto mais ao fundo se move mais lentamente, já objetos mais próximos, se movimentam cada vez mais depressa.
O Parallax[1] trata-se de um termo pouco visto, mas constantemente utilizado em diversos games. O tal Parallax é na verdade uma forma de enganar nosso cérebro utilizando objetos de tamanhos diferentes e com velocidades diferentes para criar um aspecto de profundidade.
Tome como exemplo os jogos de sucesso da década de 90 desenvolvidos em 2D, onde há vários objetos e imagens se movem ao fundo. Você pode visualizar árvores, nuvens, o sol e muito outros detalhes, e por incrível que pareça eles estão no mesmo plano, porém nosso cérebro interpreta como se fossem camadas diferentes.
Assim sendo, para a movimentação geral da aplicação será utilizada a técnica de Parallax, dividindo o background em três camadas sobrepostas que se movimentam em velocidades diferentes porém em uma câmera fixa, para gerar a noção final de velocidade
3. Detecção de Colisão
O objetivo principal desse projeto é colocar em pratica técnicas de computação gráfica estudadas durante o curso de computação gráfica 2. Especificamente para este projeto, iremos tratar colisões como foco principal de estudo. A partir deste capitulo será apresentado maneiras de detecção de colisão, onde posteriormente, ao definirmos o modo a ser utilizado será apresentado o desenvolvimento final.
Detecção de colisão é um requisito fundamental para que uma aplicação da computação gráfica possa simular o mundo real com maior fidelidade. Precisão e desempenho são características cruciais para um algoritmo eficiente de detecção de colisão.
Se tratando de um dos componentes mais importantes e dependentes das informações de interação monitoradas em um ambiente virtual, a detecção de colisão permite responder às interações entre objetos no mundo virtual.
Detectar uma colisão é verificar a aproximação entre objetos, sendo que essa aproximação deve ser suficientemente pequena a ponto de possibilitar a ocorrência de uma sobreposição entre objetos, fornecendo, assim, um maior realismo às aplicações. Para que essa percepção ocorra são necessários pelo menos dois objetos, em que pelo menos um deles deve estar em movimento. Trata-se de um problema complexo, visto que objetos virtuais podem ter formas, tamanhos e movimentos variados, dependendo de suas naturezas e da finalidade da aplicação. Para uma colisão, os objetos em cena podem ser rígidos ou deformáveis.
A seguir um conjunto de abordagens relacionadas à detecção de objetos rígidos e deformáveis será mostrado como possibilidades para detecção de colisão.
3.1. Volumes Limitantes
A detecção de colisão por volumes limitantes são algoritmos que utilizam primitivas simples para delimitação do espaço de colisão do objeto, tais como esferas, caixas alinhadas aos eixos AABB[2] e caixa orientada OBB[3]. A principal ideia desse tipo de abordagem é verificar os pontos mais afastados do objeto e inserir nesse espaço a primitiva.
...