Lógica de Jogos. Conteúdo

Documentos relacionados
Pedro Vasconcelos DCC/FCUP. Programação Funcional 11 a Aula Gráficos usando Gloss

Guia de Atividades usando o método de Euler para encontrar a solução de uma Equação Diferencial Ordinária

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

A equação da circunferência

Ambiente de programação

Material criado e organizado por: Suéllen Rodolfo Martinelli. Disponibilizado em:

Questão Valor Grau Revisão 1 a Questão 2,0 2 a Questão 2,0 3 a Questão 3,0 4 a Questão 3,0 Total 10,0

INTRODUÇÃO À ENGENHARIA

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

Chamaremos AC de vetor soma (um Vetor resultante) dos vetores AB e BC. Essa soma não é uma soma algébrica comum.

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

ALGORITMOS EXERCÍCIOS LISTA 01: ESTRUTURAS SEQUENCIAIS Profª Lucília Ribeiro. Como calcular?

Vetores. Toda grandeza vetorial possui:

1) (Unicamp) Três planos de telefonia celular são apresentados na tabela abaixo:

DINÂMICA APLICADA. Livro Texto adotado: Dinâmica: Mecânica para Engenheiros R.C. Hibbeler.

Desenvolvendo Jogos 2D-Android

AULA 15 IMPULSO E QUANTIDADE DE MOVIMENTO

Aula O Plano Cartesiano

Capítulo 7: Representação gráfica de equações paramétricas 127. (x(t),y(t)) y(t) = v 0 t sin q (g/2)tñ. x(t) = v 0 t cos q

Lista 5: Trabalho e Energia

14.5 A Regra da Cadeia. Copyright Cengage Learning. Todos os direitos reservados.

Métodos Computacionais em Física

CEDERJ - CENTRO DE EDUCAÇÃO SUPERIOR A DISTÂNCIA DO ESTADO DO RIO DE JANEIRO

RESOLUÇÃO DA AVALIAÇÃO DE MATEMÁTICA E FÍSICA (QUESTÕES INTERDISCIPLINARES) 2 o ANO DO ENSINO MÉDIO DATA: 08/08/09

Objetos definidos no seu próprio sistema de coordenadas

Resumo. 1- Criando a bolinha - sprites

Aplicações de Leis de Newton

A SIMPLIFIED GRAVITATIONAL MODEL TO ANALYZE TEXTURE ROUGHNESS

Física I VS 18/07/2015

Vetores. É tudo aquilo que pode ser medido em um fenômeno físico. Serve para entendermos como funciona e porque ocorre qualquer fenômeno físico.

Equação de Segundo Grau. Rafael Alves

= = = 160 N = kg 800 m s

LISTA 1 DE EXERCÍCIOS

Material original criado por: Vitor de Carvalho Melo Lopes e Jucimar de Souza Lima Junior

Oscilações. Movimento Harmônico Simples. Guia de Estudo (Formato para Impressão):

Aula /2 Sistemas de coordenadas Window x Viewport

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS

Aluno (a): nº: Turma:

Calcule: a) as velocidades da esfera e do pêndulo imediatamente após a colisão; b) a compressão máxima da mola.

Relatório do Trabalho Final INF01009 Computação Gráfica UFRGS. Ewerton Felipe Miglioranza

Derivadas Parciais Capítulo 14

Colisões e Impulso. Evandro Bastos dos Santos. 23 de Maio de 2017

Aula 2: Orifícios e Bocais. Por Guilherme Augusto Teixeira

Formação Continuada em Matemática Matemática 1º Ano 3º Bimestre/2012. Plano de Trabalho Função Polinomial do 2º Grau

UNIFEI - UNIVERSIDADE FEDERAL DE ITAJUBÁ

EXERCÍCIOS EXTRAS 2ª Série

Aplicação dos conceitos de posição, velocidade e aceleração. Aplicação de derivadas e primitivas de

CENTRO DE MASSA. 2.Cinco pontos materiais de massas iguais a m estão situados nas posições indicadas na figura. Determine as coordenadas do

5ª Lista de Exercícios Fundamentos de Mecânica Clássica Profº. Rodrigo Dias

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

Bacharelado Engenharia Civil. Disciplina:Física Geral e Experimental I 1 período Prof.a: Msd. Érica Muniz

Estudaremos três tipos de equações de retas: vetorial, paramétricas e simétricas.

Robótica. Prof. Reinaldo Bianchi Centro Universitário FEI 2016

LISTA DE EXERCÍCIOS: POTÊNCIA, TRABALHO E ENERGIA TURMAS: 1C01 a 1C10 (PROF. KELLER)

V m = ΔS / Δt ΔS = V m. Δt ΔS = 3, m/s. 1,28 s ΔS = 3, m. s 0= 245 km. = 45 / 0,5 V m = 90 km/h

INTRODUÇÃO À ENGENHARIA

Derivadas Parciais Capítulo 14

LISTA DE EXERCÍCIOS Nº 9

Jogos baseados em plataforma (parte 1)

Física I P3 Exercícios

Introdução à lógica de programação utilizando Scratch Aula 1

CENTRO DE CIÊNCIAS E TECNOLOGIA AGROALIMENTAR UNIDADE ACADÊMICA DE TECNOLOGIA DE ALIMENTOS DISCIPLINA: FÍSICA I EQUILÍBRIO. Prof.

DINÂMICA IMPULSIVA & COLISÕES - EXERCÍCIOS

Movimento Retilíneo Uniforme e Uniformemente Variado MRU e MRUV

Impulso. Quantidade de Movimento. Diego Ricardo Sabka

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

Experimento 5 Colisões Bidimensionais

SIMPLES DEMONSTRAÇÃO DO MOVIMENTO DE PROJÉTEIS EM SALA DE AULA *

UNIFEI - UNIVERSIDADE FEDERAL DE ITAJUBÁ

Questão Valor Grau Revisão 1 a Questão 3,5 2 a Questão 3,0 3 a Questão 3,5 Total 10,0

Lista2: Cinemática Unidimensional

Processamento Digital de Imagens

MECÂNICA GERAL VETORES POSIÇÃO E FORÇA

Volume de um sólido de Revolução

Transcrição:

Lógica de Jogos Parte 1 Movendo-se no Cenário 2006 - PUCPR Tutoria de Jogos 1º Ano Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos Conteúdo Coordenadas de mapa Centrando a ação no jogador Deslocamento e Gravidade Representando um elemento no cenário 1

Coordenadas de mapa Um jogo trabalha com dois sistemas de coordenadas: Coordenadas da tela: físico Coordenadas de mapa: lógico Coordenadas de mapa As coordenadas da tela são ditas físicas por representarem pontos mostrados na tela. Possuem valores fixo, variando de 0 a um valor máximo (ex: 639). 2

Coordenadas de mapa Já as coordenadas do mapa são ditas lógicas por representarem o mundo do jogo. Isto ocorre devido ao mapa do jogo ser maior do que é possível de ser mostrado na tela. Coordenadas de mapa Assim, a ação do jogo passa-se nas coordenadas do mapa. O que o jogo faz é mostrar na tela a projeção de parte do mapa. Normalmente, esta projeção é centrada no jogador. 3

Projeção do Mapa na Tela - Caso Geral Mapa: 0,0 Origem da tela d d Mapa: xmax, ymax Jogador: coordenadas x,y dentro do mapa Projeção do Mapa na Tela - Caso Geral Neste caso, o jogador fica centralizado na tela. Tanto o jogador como inimigos possuem uma posição x,y dentro do mapa. Com a posição x,y do jogador e as dimensões do mapa, calculamos a origem da tela em coordenadas do mapa. 4

Projeção do Mapa na Tela - Caso Geral Desta forma, precisamos conhecer as seguintes variáveis: x,y: coordenadas do jogador no mapa xmax, ymax: dimensões do mapa. xtela, ytela: dimensões da tela. ljog, ajog: a largura e altura do jogador em pontos. Projeção do Mapa na Tela - Caso Geral Conhecendo estes valores, podemos calcular xorig e yorig, a origem da tela no mapa. Tais valores são fixos durante o jogo e conhecidos pelo programador. 5

Projeção do Mapa na Tela - Caso Geral Assim, temos que: xorig ljog = xjog + 2 xtela 2 ljog xtela = xjog + 2 yorig = ajog yjog + 2 ytela 2 = ajog ytela yjog + 2 Projeção do Mapa na Tela - Caso Geral O mapa então é desenhado na tela com a origem em xorig e yorig. Com a Chien2DMapy, basta passar estes valores como coordenadas de mapa. 6

Projeção do Mapa na Tela - Caso Geral Para desenhar os elementos na tela (jogador, inimigos, etc), basta subtrair o valor de xorig e yorig das coordenadas x,y do elemento. x' = y' = x xorig y yorig Mapa: 0,0 Projeção do Mapa na Tela - Caso Especial Mapa: xmax, ymax 7

Mapa: 0,0 Projeção do Mapa na Tela - Caso Especial Mapa: xmax, ymax Projeção do Mapa na Tela - Caso Especial Os casos especias ocorrem nos cantos do mapa. Nestes casos, xorig e yorig são calculados de maneira diferente para que não se tente desenhar fora do mapa. 8

Projeção do Mapa na Tela - Caso Especial As condições para que estejamos em um caso especial devem ser verificadas INDEPENDENTEMENTE para cada eixo. Assim, é possível que no eixo x estejamos em um caso especial, mas não no eixo y. Projeção do Mapa na Tela - Caso Especial Para o eixo x: Se o xorig calculado for menor que 0, então xorig deve ser associado a 0. Se por outro lado o xorig for maior que xmapa, então xorig=xmapa-xtela. Caso contrário, mantém-se o xorig calculado. 9

Projeção do Mapa na Tela - Caso Especial Para o eixo y fazemos o mesmo: Se o yorig calculado for menor que 0, então yorig deve ser associado a 0. Se por outro lado o yorig for maior que ymapa, então yorig=ymapa-ytela. Caso contrário, mantém-se o yorig calculado. Projeção do Mapa na Tela - Caso Especial Obviamente, os elementos (jogador, inimigos, etc) devem, obrigatoriamente, verificar se eles saem do mapa ao se deslocar. 10

Deslocando-se no Mapa Para um elemento deslocar-se no mapa, este precisa conhecer algumas informações: As suas dimensões. A sua coordenada de referência dentro do sprite original (caso este não cubra o sprite inteiro). Deslocando-se no Mapa Como exemplo, vamos fazer este personagem deslocar-se no cenário: 28 pixels 40 pixels 11

Deslocando-se no Mapa Ao deslocar o elemento no mapa, testamos se o mesmo não colide com o cenário, baseado no seu boundingbox. O bounding-box é o retângulo que envolve o elemento, que neste caso, tem 28x40 pixels. Deslocando-se no Mapa O tileset utilizado para desenhar o mapa era o seguinte: 12

Deslocando-se no Mapa Porém, apenas dois blocos são ativos, nos quais o jogador pode andar ou colidir: Deslocando-se no Mapa Estes blocos possuem os código 1 e 2. Para deslocar o jogador, basta testar se o seu bounding box colide com o bounding box de um destes blocos no cenário. Para recuperar os blocos para um vetor de blocos, temos o método copiacamadamapa da Chien2DMappy. 13

Deslocando-se no Mapa Para representar este personagem, precisamos de dois sprites 32x32. Assim, o ponto de referência será um pixel dentro dos sprites. Ponto de referência Deslocando-se no Mapa Tendo o mapa podemos calcular a posição dos blocos e verificarmos a intersecção do bounding box dos blocos cobertos pelo elemento com o elemento em si. 14

Deslocando-se no Mapa Deslocando-se no Mapa A maneira mais simples de realizar o movimento é testar se o jogador pode, ou não, se posicionar na próxima posição calculada. Se puder, o jogador tem sua posição mudada, dando a impressão de movimento. 15

Gravidade Em alguns casos, como em jogos side-view, faz-se necessário a simulação de gravidade. Assim, quando um jogador pula (ganha velocidade), ele é trazido para baixo automaticamente pelo jogo. O mesmo ocorre quando ele cai em buracos. Gravidade O processo segue a fórmula clássica de física para o cálculo da velocidade, aonde a é a aceleração e t é o tempo passado: v = at 2 16

Gravidade Esta equação calcula a aceleração de um corpo em queda livre. Ela serve tanto para calcular a velocidade da queda como para reduzir a velocidade de um elemento ao dar-se o impulso para um pulo. Gravidade Assim, precisamos de duas informações para aplicarmos a gravidade em um elemento: A velocidade inicial dele. O tempo passado na ação. Para simularmos o atrito do ar, limitamos a velocidade máxima do elemento. 17

Representando um Elemento Para representarmos um elemento, utilizaremos uma estrutura de dados com diversas informações. Estas informações são usadas tanto para calcular o deslocamento do personagem como para simular a gravidade. Representando um Elemento Dados do elemento: x,y: posição do ponto de referência do elemento no mapa. lele, aele: largura e altura do elemento em pixels. tempo: tempo passado desde o início da queda. vini: velocidade inicial da queda/pulo. 18

Próxima Aula Na próxima aula, veremos um exemplo incremental que: 1. Posiciona um elemento no cenário. 2. Testa colisão. 3. Simula a gravidade. 4. Encera a partida ao chegar no final do cenário. 5. Controla a animação. 19