Cavando em bitmaps com DirectDraw

No final de 1970 e início de 1980, muitos jogos, como Artilheiro da cauda (Ver Figura 1), utilizados exibe gráficos vetoriais - exibe compostas de linhas. Depois de um tempo, raster monitores que atraem bitmaps substituídos todos os jogos gráficos vetoriais. A base de qualquer alguns jogos de computador 3-D 2-D e é a bitmap, que é uma matriz 2-D de pixels coloridos que representa uma única imagem, como mostra a Figura 2.


Figura 1: Artilheiro cauda, um jogo antigo que usa gráficos vetoriais.


Figura 2: Um mapa de bits codificada.

-Lo a alcançar animação traçando um ou mais bitmaps de algum objeto e, em seguida, rapidamente folheando-los para criar a ilusão de movimento ou mudança. Por exemplo, a Figura 3 mostra vários 56 x 72 bitmaps de uma animação esqueleto-criatura. Se você escrever um programa que desenha cada um desses bitmaps em rápida sucessão e, em seguida, move os bitmaps pela tela com cada quadro, o esqueleto vai olhar como se está andando. Isso é animação.


Figura 3: Uma animação de bitmap de uma criatura esqueleto.

Você quer ser capaz de carregar e exibir bitmaps em qualquer lugar na superfície secundária ou primária. Então você precisa para escrever software para animar os bitmaps, movê-los, verificar se há colisão, e geralmente controlá-los como se fossem objetos do jogo. Você usa o blitter para copiar bitmaps de uma superfície para outra. (O blitter é um pedaço de hardware - ou talvez emulação de software - que copia bitmaps de alguma fonte a algum destino) mas que sobre como criar e carregar os bitmaps.?

Criação de bitmaps

Criação de bitmaps é mais uma coisa artística do que qualquer outra coisa, mas a idéia principal é usar um programa de pintura - Jasc Paint Shop Pro, Corel PHOTO-PAINT, e assim por diante - para desenhar seus bitmaps. Além disso, tire suas bitmaps com algum conjunto de convenções para que os bitmaps podem ser facilmente carregadas e manipuladas. A maioria dos programadores de jogos gosto de desenhar seus bitmaps em templates.

A Figura 4 mostra um modelo de 8-X-8-pixel bitmap padrão: um número de 2 x 2 rectângulos (células), cada um contendo um mapa de bits de 8 x 8 pixels. Os retângulos são como espaços reservados, por isso, se você desenha cada um dos seus bitmaps nos retângulos e depois coloque cada um dos bitmaps dos retângulos, você terá um conjunto de bitmaps todos do mesmo tamanho com a imagem desejada dentro. Além disso, você pode acessar cada célula ou bitmap com um par de coordenadas (cx, cy), que é o canto superior esquerdo de qualquer célula.


Figura 4: Um modelo de 8 x-8-pixel com 2 x 2 células e paredes de 1 pixel de largura.

Aqui estão algumas coisas a ter cuidado quando você está criando bitmaps:

  • Cor: Você precisa decidir quantas cores seus bitmaps terá e, em seguida, desenhá-los todos no mesmo espaço de cor. Por exemplo, se você quiser usar um modo de 256 cores de 8 bits, você deve desenhar todos os seus bitmaps com a mesma paleta de 256 cores - você não pode usar uma paleta para os mocinhos e um para os bandidos! Da mesma forma, se você decidir usar 16 bits por pixel para desenhar seus mapas de bits, todos os seus bitmaps deve estar em 16 bits por pixel. Uma criatura não pode usar 24 bits por pixel. Lembre-se, o jogo só será executado em um modo de vídeo única, e todos os gráficos e bitmaps devem ser exibidos da mesma maneira.
  • Tamanho: Desenhar todos os seus mapas de bits em tamanhos que são potências de 2 - 2 x 2, 4 x 4, 8 x 8, 16 x 16, 32 x 32, e assim por diante. Seguindo essa diretriz contribui com a blitter e com várias otimizações que você realiza em seus jogos. Eles não tem que ser quadrado, mas cada eixo deve ser uma potência de dois 8 x 16 é bom, mas 7 x 5 não é.
  • Quando você cria uma página de bitmaps, use o mesmo tamanho para todos os bitmaps- não misturar tamanhos diferentes em páginas diferentes. Por exemplo, suponha que você tenha uma imagem grande, de 800 x 600 bitmap em seu programa de pintura. Você vai colocar todos os seus bitmaps 32-x-32-pixels na imagem única em um modelo agradável que tem, digamos, 16 x 16 células, como a Figura 5 mostra. Em seguida, você percebe que você tem algum espaço de sobra na imagem - você pode colocar um grupo de imagens 4-x-4 pixels. Não uma boa ideia! Basta fazer uma outra grande bitmap para manter os mapas de bits menores e para quaisquer outros tamanhos que você pode ter. Não misture seus tamanhos de bitmap em uma página única imagem.

Figura 5: Um grande, modelo 32 x 32 bitmap com espaço extra.

Se você é uma pessoa detalhista (ou se você está no seu quinto Mountain Dew), você deve perceber que, se os bitmaps são 32 x 32, por exemplo, as células que encerram eles deve ser 34 x 34 cada e têm um parede comum (1 pixel de espessura). Isso é um ponto-chave na construção de modelos.

Assim você cria um ou mais grandes arquivos de bitmap que contêm suas imagens para o seu jogo. Pode ter um ficheiro que tem todos os navios, outro que tem as explosões, outro que tem o terreno, e assim por diante. Então você carregar todos os mapas de bits para a memória e, com código de programa, exibir os bitmaps quando e onde é suposto para aparecer.

menu