ao invés de fazer um scroling básico eu criei uma tread câmera que se posiciona dinamicamente entre o personagem principal e o mouse
void *CAM(void *id){
///////////not whiled///inicialise
int waim = (run[1]->w/2);
int haim = (run[1]->h/2);
int cposx=posx;
int cposy=posy;
int cbalacont;
int cbalaMost;
/// end inicialise
//////////whiled
while(CAMon){
cout << "CAMon: ";
cbalaMost =balaMost;
if(CAMnorm){
cposx=posx;
cposy=posy;
clear(backbuffer);
camx=(cposx*2+camx+mouse_x)/3-screen->w/2;
camy=(cposy*2+camy+mouse_y)/3-screen->h/2;
if(camx<0){
camx=0;
}
}
draw_sprite(backbuffer,fundo,0/4,0);
draw_sprite(backbuffer,frente,0-camx,0-camy);
cbalacont=0;
while(balaMost>=cbalacont){
if (!tiroteio[cbalacont].hit){
draw_sprite(backbuffer,run[3],tiroteio[cbalacont].px-camx-run[3]->w/2,tiroteio[cbalacont].py-camy-run[3]->h/2);
}
cbalacont++;
}
draw_sprite(backbuffer,run[1],mouse_x-waim,mouse_y-haim);
if( objpx > posx){
dir=false;
}else{
dir=true;
}
if(dir == false)
draw_sprite_h_flip(backbuffer,run[0],cposx-camx,cposy-camy);
if(dir == true)
draw_sprite(backbuffer,run[0],cposx-camx,cposy-camy);
draw_sprite(screen,backbuffer,0,0);
objpx= camx+mouse_x;
objpy= camy+mouse_y;
}
cout << "CAMoff:";
pthread_exit(NULL);
}
Nenhum comentário:
Postar um comentário