Cavando em bitmaps com directdraw

No final de 1970 e início de 1980, muitos jogos, como Artilheiro cauda

(Ver Figura 1), utilizados gráficos vectoriais exibe - painéis constituídos de linhas. Depois de um tempo, varredura exibe que atraem bitmaps substituídos todos os jogos gráficos vetoriais. O esteio 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.

Video: C++ SDL Tutorial 3 Drawing Images to the Screen

Figura 2: Um mapa de bits codificada.

Video: C++ / OpenGL Framework Features Video

Você conseguir animação desenhando 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 ilustra várias 56 x 72 mapas de bits de uma animação esqueleto-criatura. Se você escrever um programa que chama 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: A animação 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, verifique 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 é uma peça de hardware - ou talvez emulação de software - que copia bitmaps de alguma fonte para algum destino) mas que sobre como criar e carregar os bitmaps.?

criando 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, tirar suas bitmaps com algum conjunto de convenções para que os bitmaps podem ser facilmente carregados e manipulados. 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ê desenhar cada um dos seus bitmaps nos retângulos e então carregar 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, pode aceder a cada célula ou mapa de bits 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 um pixel de largura.

Aqui estão algumas coisas para ter o cuidado de 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: Desenhe todos os seus bitmaps 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 ajuda com o blitter e com várias otimizações que você executa em seus jogos. Eles não têm que ser quadrados, 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 se misturam tamanhos diferentes em diferentes páginas. Por exemplo, suponha que você tenha uma imagem grande, 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. Você, então, perceber 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 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.

Video: DG Tutoriais - Converter Imagens para DDS

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-los deve ser 34 x 34 cada e têm um parede comum (um 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. Você pode ter um arquivo que possui todos os navios, um 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 eles deveriam aparecer.


Publicações relacionadas