Logo Hardware.com.br
Walter Hugo
Walter Hugo Super Participante Registrado
969 Mensagens 17 Curtidas

Rolagem de mapas usando Allegro em C. (Jogo River Raid Atari 2600)

#1 Por Walter Hugo 27/06/2015 - 10:05
Bom dia, galera.

Estou fazendo um projeto na faculdade que consiste em fazer um jogo com os conceitos do River Raid, de Atari, usando a Livraria Allegro e o Code Blocks.
A maneira que encontrei de fazer o jogo rolar foi fazer o personagem (Jato) parado em relação ao eixo Y e mover o mapa.
Estou tentando manipular os mapas por um vetor struct com 7 posições, que é o número de mapas, mas os mapas não aparecem. Enquanto usava um mapa apenas, estava correndo tudo bem.

Alguém poderia me dar alguma dica?
Estou fazendo errado ao usar um vetor struct?

Não vou colocar o código inteiro, apenas umas partes, pois "clean code" não é uma habilidade que domino e só irá atrapalhar vocês a me ajudarem, mas se for necessário, eu coloco.

Declaração da struct em um arquivo .h
[code=CSS]struct Mapa{
BITMAP* Mapa;
int PosY;
}M[7];[/code]

Carregando as imagens .bmp
[code=CSS]BITMAP* buffer = create_bitmap(SCREEN_W, SCREEN_H);
M[0].Mapa = load_bitmap("Mapas/Intro.bmp", NULL);
M[1].Mapa = load_bitmap("Mapas/Fase 1.bmp", NULL);
M[2].Mapa = load_bitmap("Mapas/Fase 2.bmp", NULL);
M[3].Mapa = load_bitmap("Mapas/Fase 3.bmp", NULL);
M[4].Mapa = load_bitmap("Mapas/Fase 4.bmp", NULL);
M[5].Mapa = load_bitmap("Mapas/Fase 5.bmp", NULL);
M[6].Mapa = load_bitmap("Mapas/Fase 6.bmp", NULL);[/code]

Definindo o ponto onde cada mapa "nascerá"
[code=CSS]for(i = 0; i < 7; i++){
M[i].PosY = 800 - M[i].Mapa->h - L.Bar->h;
}[/code]

Essa foi a maneira que encontrei pra assim que acabar um mapa, já desenhar o outro, de acordo com a posição no pedaço acima. (Já com incremento na posição do eixo Y)
[code=CSS]
while (!key[KEY_ESC]){

while(TimerMov > 0){

if(M[i].PosY<=0){
i++;
draw_sprite(buffer, M[i].Mapa, 0, M[i].PosY);
}
M[i].PosY += 4;
[/code]

Se alguém poder me ajudar no que estou fazendo de errado, seria de muita ajuda. Virei a noite fazendo os sprites e testando a posição do layout e agora empaquei.

Muito obrigado.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal