terça-feira, 16 de agosto de 2011
segunda-feira, 15 de agosto de 2011
AULA 6 - COLISÃO
bool boundingbox(int p1posx, int p1posy ,BITMAP* p1imagem, int p2posx, int p2posy ,BITMAP* p2imagem){
if ( ( p1posx> p2posx + p2imagem->w )||
( p1posy> p2posy + p2imagem->h )||
( p2posx> p1posx + p1imagem->w )||
( p2posy> p1posy + p1imagem->h ) )
{
//Sem colisão
return false;
}
// Colisão
return true;
}
AULA 5 - SCROLLING - "CÂMERA"
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);
}
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);
}
AULA 4 - SOM
simplismente coloquei speed-angra como musica de fundo
install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL);
pthread_create(&threads[0], NULL, CAM, (void *)1);
som = load_sample("speed-angra.wav");
AULA 3 - PHOTOSHOP - ANIMAÇÃO
load imgs
run[0] = load_bitmap("Untitled-2_0006_Layer 1.bmp",NULL);
run[1] = load_bitmap("Untitled-2_0005_Layer 2.bmp",NULL);
run[2] = load_bitmap("Untitled-2_0004_Layer 3.bmp",NULL);
run[3] = load_bitmap("Untitled-2_0003_Layer 4.bmp",NULL);
run[4] = load_bitmap("Untitled-2_0002_Layer 5.bmp",NULL);
run[5] = load_bitmap("Untitled-2_0001_Layer 6.bmp",NULL);
jump[0] = load_bitmap("jump_1.bmp",NULL);
jump[1] = load_bitmap("jump_2.bmp",NULL);
codigo de comportamento
if(!direita && !esquerda && !key[KEY_SPACE]){
if(primeiro_t == false){
timer_ini = t_timer_count; // começa a contar o timer
primeiro_t = true;
cout << "parou" << endl;
}
}
if(key[KEY_SPACE] && pulo2 == false)
pulo = true;
if(direita){
primeiro_t = false;
dir = true;
if(posx == posicao){
scrolling = true;
}
if(map_move == posicao2){
scrolling = false;
}
if(scrolling == true){map_move -=10;}
else{posx+=10;}
}
if(esquerda) {
primeiro_t = false;
dir = false;
if(map_move == 0){
scrolling = false;
}
if(scrolling == true){map_move +=10;}
else{posx-=10;}
if(posx == 350){
scrolling = true;
}
}
// ------------------------------------------------------ PULO!!
if((pulo == true && chao == true)){
chao = false;
rest(100);
}
if(chao == false){
posy -= impulso;
impulso -= 0.1;
if(posy > 460 || posy + gravidade > 460){
posy = 460;
impulso = 50;
chao = true;
pulo = false;
pulo2 = false;
}
}
if(chao == false){
posy += gravidade;
}
if(scrolling == true){
posx = posicao;
}
renderização
if(chao == false){
if(dir == false){
if(impulso <= 40 && impulso >= 30){
draw_sprite_h_flip(backbuffer,jump[1],posx,posy);
}
else{
draw_sprite_h_flip(backbuffer,jump[0],posx,posy);
}
}
if(dir == true){
if(impulso <= 40 && impulso >= 30){
draw_sprite(backbuffer,jump[1],posx,posy);
}
else{
draw_sprite(backbuffer,jump[0],posx,posy);
}
}
}else{
if(dir == false)
draw_sprite_h_flip(backbuffer,run[frame],posx,posy);
if(dir == true)
draw_sprite(backbuffer,run[frame],posx,posy);
}
draw_sprite(screen,backbuffer,0,0);
run[0] = load_bitmap("Untitled-2_0006_Layer 1.bmp",NULL);
run[1] = load_bitmap("Untitled-2_0005_Layer 2.bmp",NULL);
run[2] = load_bitmap("Untitled-2_0004_Layer 3.bmp",NULL);
run[3] = load_bitmap("Untitled-2_0003_Layer 4.bmp",NULL);
run[4] = load_bitmap("Untitled-2_0002_Layer 5.bmp",NULL);
run[5] = load_bitmap("Untitled-2_0001_Layer 6.bmp",NULL);
jump[0] = load_bitmap("jump_1.bmp",NULL);
jump[1] = load_bitmap("jump_2.bmp",NULL);
codigo de comportamento
if(!direita && !esquerda && !key[KEY_SPACE]){
if(primeiro_t == false){
timer_ini = t_timer_count; // começa a contar o timer
primeiro_t = true;
cout << "parou" << endl;
}
}
if(key[KEY_SPACE] && pulo2 == false)
pulo = true;
if(direita){
primeiro_t = false;
dir = true;
if(posx == posicao){
scrolling = true;
}
if(map_move == posicao2){
scrolling = false;
}
if(scrolling == true){map_move -=10;}
else{posx+=10;}
}
if(esquerda) {
primeiro_t = false;
dir = false;
if(map_move == 0){
scrolling = false;
}
if(scrolling == true){map_move +=10;}
else{posx-=10;}
if(posx == 350){
scrolling = true;
}
}
// ------------------------------------------------------ PULO!!
if((pulo == true && chao == true)){
chao = false;
rest(100);
}
if(chao == false){
posy -= impulso;
impulso -= 0.1;
if(posy > 460 || posy + gravidade > 460){
posy = 460;
impulso = 50;
chao = true;
pulo = false;
pulo2 = false;
}
}
if(chao == false){
posy += gravidade;
}
if(scrolling == true){
posx = posicao;
}
renderização
if(chao == false){
if(dir == false){
if(impulso <= 40 && impulso >= 30){
draw_sprite_h_flip(backbuffer,jump[1],posx,posy);
}
else{
draw_sprite_h_flip(backbuffer,jump[0],posx,posy);
}
}
if(dir == true){
if(impulso <= 40 && impulso >= 30){
draw_sprite(backbuffer,jump[1],posx,posy);
}
else{
draw_sprite(backbuffer,jump[0],posx,posy);
}
}
}else{
if(dir == false)
draw_sprite_h_flip(backbuffer,run[frame],posx,posy);
if(dir == true)
draw_sprite(backbuffer,run[frame],posx,posy);
}
draw_sprite(screen,backbuffer,0,0);
AULA 2 - ALLEGRO BÁSICO
if(UP & (protect<=0)&(pulo<pulo2)&release){
//character pulo stat
protect = 2;
if(!apoio){
pulo++;
impulso = 15;
}else {
impulso =20;
}
release=false;
apoio=false;
}
Assinar:
Comentários (Atom)