Ir ao conteúdo
  • Cadastre-se

C programar o jogo pacman em c


skymarcos

Posts recomendados

Boa tarde, estou com algumas dúvidas de como eu fazia um jogo do PacMan usando a biblioteca gráfica SDL2.
Por onde eu começaria? 
Eu sei que o mapa seria uma Matriz, mas eu colocaria uma imagem pronta do mapa ou ir montando parte por parte pela matriz? Como eu fazia os fantasma indo atrás do PacMan? 

Poderiam me dar umas dicas por onde começar programando em C?

Link para o comentário
Compartilhar em outros sites

Eu já programei Pacman em BASIC. Nunca usei SDL, mas a principio sugiro que você tente trabalhar com bitmaps.

 

Primeiramente você pode criar o labirinto e os bitmaps de Pacman e dos fantasmas, depois procure por uma função para mover o bitmap na tela.

 

No caso do movimento dos fantasmas, a ideia é fazer as coordenadas X/Y convergirem para as coordenadas do Pacman, por exemplo:

 

PUT (FX1 * 40 + 5, FY1 * 40 + 5), FANTASMA1
 
IF FX1 > X THEN FX1 = FX1 - 1
IF FX1 < X THEN FX1 = FX1 + 1
IF FY1 > Y THEN FY1 = FY1 - 1
IF FY1 < Y THEN FY1 = FY1 + 1

 

A função PUT simplesmente coloca o bitmap na tela com base nas coordenadas x/y. A vantagem dessa função é que ela realiza uma operação lógica como XOR. Isso significa que a cada loop ela "apaga" a posião anterior fazendo com o personagem se mova na tela. Então você pode procurar por uma função semelhante, tipo: put(int x, int y, void *pBitmap).

 

É claro que essa é uma abordagem simples e há algoritmos de busca mais adequados para movimentar os fantasmas.

Link para o comentário
Compartilhar em outros sites

@skymarcos Cara, colocar uma imagem pronta do mapa pode complicar o resto do jogo, acho melhor você ir desenhando de bloco em bloco com tamanho fixo, no geral os programadores usam blocos quadrados de de 32x32. 

Você pode utilizar uma matriz para representar o mapa, supondo que você tem uma matriz 2 x 2, você pode fazer algo do tipo:

int matriz[2][2] = {0, 0
                    1 , 1};

Ai na hora de Desenhar o mapa, você percorre a matriz, e onde for 0 você usa o bloco de estrada, onde for 1 você utiliza o bloco de parede.
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!