Creuser dans bitmaps avec DirectDraw

À la fin des années 1970 et au début des années 1980, de nombreux jeux, tels que Tail Gunner (voir Figure 1), affiche des graphiques vectoriels utilisés - affiche constitués de lignes. Après un moment, les affichages de trame qui attirent bitmaps remplacés tous les jeux de graphiques vectoriels. Le pilier de toute 2-D et quelques jeux 3-D est l'ordinateur bitmap, qui est une matrice de pixels de couleur 2-D représentant une seule image, en tant que montre la figure 2.

Creuser dans bitmaps avec DirectDraw

Figure 1: Tail Gunner, un vieux jeu qui utilise des graphiques vectoriels.

Creuser dans bitmaps avec DirectDraw

Figure 2: Un bitmap codé.

Vous réalisez animation en dessinant un ou plusieurs bitmaps de quelque objet, puis rapidement en feuilletant pour créer l'illusion du mouvement ou de changement. Par exemple, la figure 3 représente plusieurs 56 x 72 bitmaps d'une animation squelette-créature. Si vous écrivez un programme qui dessine chacun de ces bitmaps en succession rapide, puis déplace les bitmaps à travers l'écran à chaque trame, le squelette sera comme si ça marche. Voilà animation.

Creuser dans bitmaps avec DirectDraw

Figure 3: Une animation bitmap d'une créature de squelette.



Vous voulez être en mesure de charger et d'afficher des bitmaps n'importe où sur la surface secondaire ou primaire. Ensuite, vous devez écrire des logiciels pour animer les bitmaps, les déplacer, vérifiez collision, et généralement les contrôler comme si elles étaient des objets de jeu. Vous utilisez le blitter de copier des bitmaps d'une surface à une autre. (La blitter est un morceau de matériel - ou un logiciel d'émulation peut-être - que les copies des bitmaps à partir d'une source vers une destination) Mais ce que sur la création et le chargement des bitmaps.?

Création de bitmaps

Création de bitmaps est plus d'une chose artistique qu'autre chose, mais l'idée principale est d'utiliser un programme de peinture - Jasc Paint Shop Pro, Corel PHOTO-PAINT, et ainsi de suite - pour dessiner vos bitmaps. En outre, tirer vos bitmaps avec un certain ensemble de conventions afin que les bitmaps peuvent être facilement chargées et manipulées. La plupart des programmeurs de jeux aiment tirer leurs bitmaps dans les modèles.

La figure 4 montre un modèle de 8 x 8 pixels-bitmap norme: un nombre de 2 x 2 rectangles (cellules), chacun contenant un bitmap 8-x-8 pixels. Les rectangles sont comme des espaces réservés, donc si vous dessinez chacun de vos bitmaps dans les rectangles, puis chargez chacun des bitmaps des rectangles, vous aurez un ensemble de bitmaps tous la même taille avec l'imagerie souhaitée à l'intérieur. En outre, vous pouvez accéder à chaque cellule ou bitmap avec une paire de coordonnées (cx, cy), qui est le coin supérieur gauche d'une cellule.

Creuser dans bitmaps avec DirectDraw

Figure 4: Un modèle de 8 x 8 pixels, avec 2 x 2 cellules et des parois à 1 pixel de large.

Voici quelques choses à faire attention lorsque vous créez bitmaps:

  • Couleur: Vous devez décider combien de couleurs vos bitmaps auront puis dessinez-les tous dans le même espace de couleur. Par exemple, si vous voulez utiliser un mode 256 couleurs 8 bits, vous devez tirer toutes vos bitmaps avec le même palette de 256 couleurs - vous ne pouvez pas utiliser une seule palette pour les bons gars et une pour les méchants! De même, si vous décidez d'utiliser 16 bits par pixel pour dessiner vos bitmaps, tous vos bitmaps doivent être en 16 bits par pixel. Une créature ne peut pas utiliser 24 bits par pixel. Rappelez-vous, le jeu ne fonctionnera que dans un mode vidéo unique, et tous les graphiques et les bitmaps doit être affiché de la même manière.
  • Taille: Dessinez tous vos bitmaps dans des tailles qui sont des puissances de 2 - 2 x 2, 4 x 4, 8 x 8, 16 x 16, 32 x 32, et ainsi de suite. Suite à cette ligne directrice aide avec le blitter et diverses optimisations que vous effectuez dans vos jeux. Ils ne doivent pas être de forme carrée, mais chaque axe doit être une puissance de deux 8 x 16 est bien, mais 7 x 5 est pas.
    Lorsque vous créez une page de bitmaps, utiliser la même taille pour tous les bitmaps- ne pas mélanger différentes tailles sur des pages différentes. Par exemple, supposons que vous faites une grande image, 800 x 600 bitmap dans votre programme de peinture. Vous allez mettre tous vos bitmaps 32-x-32-pixels sur cette image unique dans un modèle agréable qui a, disons, 16 x 16 cellules, comme la figure 5 montre. Vous vous rendez compte alors que vous avez un peu de place sur sur l'image - vous pouvez adapter à un groupe d'images 4-x-4-pixels. Pas une bonne idée! Il suffit de faire un autre grand bitmap pour contenir les petits bitmaps et pour toutes les autres tailles que vous pourriez avoir. Ne mélangez pas vos tailles de bitmap sur une page d'une seule image.
Creuser dans bitmaps avec DirectDraw

Figure 5: Un grand, modèle 32 x 32 bitmap avec un espace supplémentaire.

Si vous êtes une personne de souci du détail (ou si vous êtes sur votre cinquième Mountain Dew), vous devez réaliser que si les bitmaps sont 32 x 32, par exemple, les cellules les enfermant doivent être 34 x 34 chacun et avoir une paroi commune (1 pixel d'épaisseur). Voilà un point clé lors de la construction des modèles.

Donc, vous créez un ou plusieurs gros fichiers bitmap qui contiennent vos images pour votre jeu. Vous pouvez avoir un fichier qui a tous les navires, une autre qui a les explosions, un autre qui a le terrain, et ainsi de suite. Puis vous chargez tous les bitmaps en mémoire et, avec le code du programme, afficher les bitmaps quand et où ils sont censés apparaître.


» » » » Creuser dans bitmaps avec DirectDraw