terça-feira, 16 de agosto de 2011

AULA 20 - PROJETOS

AULA 19 - TORQUE 2

AULA 18 - TORQUE 1

AULA 17 - MÁQUINA DE ESTADOS

AULA 16 - CANAL ALPHA

AULA 15 - THREADS

AULA 14 - TEMPLATE - NAMESPACES

AULA 13 - OPENGL

AULA 12 - A* PATHFINDING

AULA 11 - ARQUIVOS - PIXELS

AULA 10 - HERANÇA - MOUSE

AULA 9 - PONTEIROS

AULA 8 - ORIENTAÇÃO AO OBJETO

AULA 7 - TIMER

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);
}

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);

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;
    }