Como fazer a foca respirar no exercício de mc102?

Preciso fazer com que a foca do tanque nade ( isso eu já fiz) e depois de
algum tempo suba para a superfície e respire, depois volte a nadar.

Não consigo achar o algoritmo para que ela suba e respire na superfície.

#include <stdlib.h>
#include <time.h>
#include <allegro.h>

/*    +----------------------------------------+    +
      |                                        A    . MARGEM_SUPERIOR
      |   +--------------------------------+   Q    +
      |   |                                |   U
      |   |                                |   A
      |   |                                |   R
      |   |                                |   I
      |   |                                |   O
      |   |                                |   |
      |   |                                |   A
      |   |                                |   L
      |   |                                |   T
      |   |                                |   U
      |   +--------------------------------+   R   +
      |                                        A   . MARGEM_INFERIOR
      +-------------AQUARIO_LARGURA------------+   +

      + . +                                + . +
        MARGEM_ESQUERDA                      MARGEM_DIREITA        */

#define AQUARIO_LARGURA 640
#define AQUARIO_ALTURA 480
#define PEIXE_LARGURA 50
#define PEIXE_ALTURA 34
#define MARGEM_ESQUERDA 0
#define MARGEM_DIREITA 0
#define MARGEM_SUPERIOR 0
#define MARGEM_INFERIOR 70

int main(void){

    // parâmetros do aquário
    BITMAP *fundo;

    // parâmetros do peixe
    BITMAP *peixe;
    int posicaoX, posicaoY, direcaoX, direcaoY,
        velocidadeX, velocidadeY, incrementoX, incrementoY, retorno;

    // inicialize o sistema do Allegro
    allegro_init();

    // inicialize o controlador do teclado
    install_keyboard();

    // inicialize o controlador de temporizadores
    install_timer();

    // inicialização do gerador de numeros aleatórios
    srand(time(NULL));

    // definição da profundidade de cor
    // http://pt.wikipedia.org/wiki/Profundidade_de_cor
    set_color_depth(desktop_color_depth());

    // inicialize o modo gráfico com uma resolução de tela de 640x480 píxeis
    retorno = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
    if (retorno != 0) {
        allegro_message(allegro_error);
        return 1;
    }

    set_window_title("Aquario - pressione a tecla Esc para sair do programa");

    fundo = load_bmp("tanque.bmp", NULL);

    peixe = load_bmp("foca.bmp", NULL);
    posicaoX = 100 + rand() % 300;
    posicaoY = 100 + rand() % 200;
    direcaoX = rand() % 2 == 0 ? -1 : 1;
    direcaoY = rand() % 2 == 0 ? -1 : 1;
    velocidadeX = rand() % 8;
    velocidadeY = rand() % 8;
    incrementoX = rand() % 4;
    incrementoY = rand() % 4;

    while(!key[KEY_ESC])  // enquanto não for pressionada a tecla ESC, ...
    {
        // desloque o peixe!
        if (rand() % 8 == 0) {
            if (rand() % 16 == 0) direcaoX = -direcaoX;
            if (rand() % 16 == 0) direcaoY = -direcaoY;
            incrementoX = rand() % 4 + 1;
            incrementoY = rand() % 4 + 1;
            velocidadeX = (velocidadeX + incrementoX) % 8 + 1;
            velocidadeY = (velocidadeY + incrementoY) % 8 + 1;
            posicaoX = posicaoX + direcaoX * velocidadeX;
            posicaoY = posicaoY + direcaoY * velocidadeY;
            if (posicaoX < MARGEM_ESQUERDA) {
                posicaoX = MARGEM_ESQUERDA;
                direcaoX = -direcaoX;
            }
            if (posicaoX + PEIXE_LARGURA >= AQUARIO_LARGURA - MARGEM_DIREITA) {
                posicaoX = AQUARIO_LARGURA - MARGEM_DIREITA - PEIXE_LARGURA - 1;
                direcaoX = -direcaoX;
            }
            if (posicaoY < MARGEM_SUPERIOR) {
                posicaoY = MARGEM_SUPERIOR;
                direcaoY = -direcaoY;
            }
            if (posicaoY + PEIXE_ALTURA >= AQUARIO_ALTURA - MARGEM_INFERIOR) {
                posicaoY = AQUARIO_ALTURA - MARGEM_INFERIOR - PEIXE_ALTURA - 1;
                direcaoY = -direcaoY;
            }

            // sem bufferização
            blit(fundo, screen, 0, 0, 0, 0, AQUARIO_LARGURA, AQUARIO_ALTURA);
            // a cor violeta-claro (#ff00ff) é tratada como transparente pela
            // função draw_sprite().
            if (direcaoX == 1) draw_sprite(screen, peixe, posicaoX, posicaoY);
            else draw_sprite_h_flip(screen, peixe, posicaoX, posicaoY);
        }

        // pausa de 20 milissegundos
        rest(20);
    }

    //end program
    allegro_exit();
    return 0;

}
END_OF_MAIN()
Add Done
    over 1 year ago Andrea Bucci said:

    Colocar "urgente" no enunciado não fará com que você obtenha uma resposta mais rapidamente. As pessoas responderão assim que souberem e tiverem tempo hábil para tal. Não sei nada de Allegro, então não vou nem tentar responder. Mas para não passar em branco, sugiro que você reformate sua mensagem, pois ela está meio ilegível, está complicado de ler (fonte muito grande no começo, comentários sobre as margens mal formatados etc). Boa sorte!

    over 1 year ago Davi M. J. Barbosa said:

    Para a formatação do código fonte você deve identar o código com 4 espaços extras. Veja mais informações em: http://umamao.com/editing-help. Como a Andrea falou, o "urgente" na resposta não fará com que você obtenha a resposta mais rapidamente. A minha dica com relação a isso é: faça a pergunta direito e depois passe o link para algumas pessoas que você acha que saibam responder.

    Please sign in to answer question.

    2
    Andrea Bucci

    http://umamao.com/questions/como-fazer-a-foc...rs/4c8906ea79de4f1a200004db

    Search results:
    PsiYoga: Exercícios de Respiração Abdominal e Diafragmática

    psiyoga.blogspot.com/2008/07/exerccios-de-respirao-abdominal_09.html

    No segundo caso o movimento foca-se ao nível das ... não sobe tanto como no exercício ... de estenose de traquéia, comecei a fazer os exercícios num dia e no ...

    Técnicas para evitar a ejaculação precoce | Cromossoma Y

    cromossomay.com/artigos/tecnicas-para-evitar-ejaculacao-precoce

    ... errado como é prejudicial. O método Pára/Começa foca-se em redireccionar o tipo de ... Eu vi no youtube um vídeo de exercícios ... quiser fazer oral,sempre depois de ...

    7 mitos sobre emagrecer com exercícios físicos

    possoemagrecer.com/index.php?option=com_content&view=article&id=...

    ... história de Carlos Henrique Como perder ... de outra fonte de energia e, antes de escolher a gordura, foca na ... Fazer exercício físico só no fim de semana é melhor ...

    Dicas de Treino – 7 mitos sobre emagrecer com exercícios físicos

    www.dinoblog.com.br/2010/01/28/dicas-de-treino-7-mitos-sobre...

    ... de outra fonte de energia e, antes de escolher a gordura, foca na ... boas fontes de gorduras (como azeite ... Fazer exercício físico só no fim de semana é melhor do ...

    Exercícios de Respiração Abdominal e Diafragmática

    www.karatementeforca.com.br/documentos_pdf/exercicios_de...

    No segundo caso o movimento foca-se ao ... de humedecer o ar. Respirar pelo ... tanto como no exercício anterior. (Fig. 5) Fig. 5 3. Antes de voltarmos a expirar podemos fazer uma ...

    Search results provided by Bing | Keep searching on Bing / Google