Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contedo
Coordenadas de mapa Centrando a ao no jogador Deslocamento e Gravidade Representando um elemento no cenrio
Coordenadas de mapa
Um jogo trabalha com dois sistemas de coordenadas:
Coordenadas da tela: fsico Coordenadas de mapa: lgico
Coordenadas de mapa
As coordenadas da tela so ditas fsicas por representarem pontos mostrados na tela. Possuem valores fixo, variando de 0 a um valor mximo (ex: 639).
Coordenadas de mapa
J as coordenadas do mapa so ditas lgicas por representarem o mundo do jogo. Isto ocorre devido ao mapa do jogo ser maior do que possvel de ser mostrado na tela.
Coordenadas de mapa
Assim, a ao do jogo passa-se nas coordenadas do mapa. O que o jogo faz mostrar na tela a projeo de parte do mapa. Normalmente, esta projeo centrada no jogador.
yorig = yjog +
10
Deslocando-se no Mapa
Para um elemento deslocar-se no mapa, este precisa conhecer algumas informaes:
As suas dimenses. A sua coordenada de referncia dentro do sprite original (caso este no cubra o sprite inteiro).
Deslocando-se no Mapa
Como exemplo, vamos fazer este personagem deslocar-se no cenrio:
28 pixels 40 pixels
11
Deslocando-se no Mapa
Ao deslocar o elemento no mapa, testamos se o mesmo no colide com o cenrio, baseado no seu boundingbox. O bounding-box o retngulo 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
Porm, apenas dois blocos so ativos, nos quais o jogador pode andar ou colidir:
Deslocando-se no Mapa
Estes blocos possuem os cdigo 1 e 2. Para deslocar o jogador, basta testar se o seu bounding box colide com o bounding box de um destes blocos no cenrio. Para recuperar os blocos para um vetor de blocos, temos o mtodo copiaCamadaMapa da Chien2DMappy.
13
Deslocando-se no Mapa
Para representar este personagem, precisamos de dois sprites 32x32. Assim, o ponto de referncia ser um pixel dentro dos sprites.
Ponto de referncia
Deslocando-se no Mapa
Tendo o mapa podemos calcular a posio dos blocos e verificarmos a interseco 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 no, se posicionar na prxima posio calculada. Se puder, o jogador tem sua posio mudada, dando a impresso de movimento.
15
Gravidade
Em alguns casos, como em jogos side-view, faz-se necessrio a simulao 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 frmula clssica de fsica para o clculo da velocidade, aonde a a acelerao e t o tempo passado:
v = at
16
Gravidade
Esta equao calcula a acelerao 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 informaes para aplicarmos a gravidade em um elemento:
A velocidade inicial dele. O tempo passado na ao.
17
Representando um Elemento
Para representarmos um elemento, utilizaremos uma estrutura de dados com diversas informaes. Estas informaes so usadas tanto para calcular o deslocamento do personagem como para simular a gravidade.
Representando um Elemento
Dados do elemento:
x,y: posio do ponto de referncia do elemento no mapa. lele, aele: largura e altura do elemento em pixels. tempo: tempo passado desde o incio da queda. vini: velocidade inicial da queda/pulo.
18
Prxima Aula
Na prxima aula, veremos um exemplo incremental que:
1. 2. 3. 4. Posiciona um elemento no cenrio. Testa coliso. Simula a gravidade. Encera a partida ao chegar no final do cenrio. 5. Controla a animao.
19