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