quinta-feira, 26 de maio de 2011

AULA 5 - SCROLLING - "CÂMERA"

Para adicionarmos o scrolling temos que ter as seguintes variaveis de controle:
int map_move >> posição do mapa
bool scrolling >> indica se o scrolling está ativado
int posicao >> indica a posicao inicial no qual o scrolling será ativado
int posicaoFinal >> posicao final no qual o scrolling é novamente desativado

scrolling = false >> scrolling começa desativado até que o personagem chegue a marca da variavel "posicao"
posicao = 350; >> mais ou menos no meio da tela
posicaoFinal = -frente->w +800; >> ou -2800, poise o mapa inteiro tem 3600 de largura e o tamanho da tela é de 800

Para o cenario vamos utilizar duas imagens.. uma para a frente do cenario e outra para o fundo do cenario.. o fundo do cenario irá se movimentar mais lentamente:
BITMAP* frente;
BITMAP* fundo;
frente = load_bitmap("cenario2.bmp",NULL);
fundo = load_bitmap("cenario2back.bmp",NULL);

cenario2.bmp:


cenario2back.bmp:


Pintando o cenario na tela:
clear(backbuffer); >> limpa o backbuffer
draw_sprite(backbuffer,fundo,map_move/4,0); >> pinta o fundo do cenario em uma posição "x" 4 vezes menor que a frente do cenario, fazendo assim que o fundo do cenario se movimente mais lentamente
draw_sprite(backbuffer,frente,map_move,0); >> pinta a frente do cenario na posicao map_move

Movimentação de direita e esquerda:
if(direita){
dir = true;
if(posx >= posicao){
scrolling = true;
}else{
scrolling = false;
}
if(map_move == posicaoFinal){
scrolling = false;
}
if(scrolling == true){
map_move -=50;
}else{
posx+=50;
}
}

if(esquerda) {
dir = false;
if(posx <= posicao){
scrolling = true;
}else{
scrolling = false;
}
if(map_move == 0){
scrolling = false;
}
if(scrolling == true){
map_move +=50;
}else{
posx-=50;
}
}

Nenhum comentário:

Postar um comentário