10-2 Création des graphismes

10-2-1 Les écrans de jeu

 

Les écrans de jeu sont au nombre de 4 (l’intro + les 3 circuits). L’intro étant basée sur les 3 autres, il a fallut créer les circuits avant. Ce jeu est inspiré d’un autre en BASIC, que l’on trouve dans le livre suivant :

 

Super jeux AMSTRAD

 

Toutefois l’original ne fonctionnait qu’en mode texte et n’était pas aussi poussé techniquement. Mais les circuits qui le composent ont été repris pour ce jeu. Ainsi, les écrans sont maintenant entièrement graphiques. Cependant, et on se souvient de la structure de la mémoire vidéo, il était préférable de continuer à aligner les divers scores (tours, temps, vies) sur le texte CPC. Le meilleurs moyen de construire les circuits était donc de passer d’abord par un écran texte :

 

 

L’image a ensuite été capturée sur émulateur puis retravaillée sous Paint. Le circuit a été légèrement déplacé puis redessiné puis un titre et des cadres ont été rajoutés pour donner le résultat suivant :

 

 

Une fois toutes les images créées, il a fallut les sauvegarder au format de la mémoire vidéo CPC. C’est le fameux format binaire qui donne des images de 17ko si reconnaissables. Il existe 2 bons convertisseurs de format pour le CPC :

 

  1. Amstrad CPC Toolkit (fonctionne sur tous les Windows)
  2. ConvImgCpc (fonctionne sur les Windows 2000 et XP)

 

La même palette a été utilisée pour toutes les images afin de simplifier les choses (surtout au niveau du sprite de la voiture). Les couleurs sont les suivantes :

 

Couleur

Valeur BASIC

0

 

15

1

 

9

2

 

26

3

 

6

 

Cette palette comprend bien 4 couleurs puisqu’on se trouve en mode 1. Celle-ci sera définie tout au début du programme et sera active tout le temps du jeu.

 

 

10-2-2 Les sprites

 

Les sprites sont de 2 types :

 

 

Nous verrons le cas des chiffres avec l’étude du chronomètre, donc attardons nous sur la voiture et l’explosion.

 

 

La voiture possède 8 angles possibles, il fallait donc au moins un sprite par angle. Maintenant on se rappelle bien le codage des octets de mémoire vidéo (sinon reportez-vous sur la partie 9 traitant de la vidéo). Vu que la voiture peut-être n’importe où à l’écran, elle ne s’aligne pas sur les octets ou sur le texte. Il faut donc prévoir 4 positions de sprites selon que l’on est à octet + 0, + 1, + 2 ou + 3 pixels. Ainsi les huit angles de voiture sont encore multipliés par 4. Il en va de même avec l’explosion qui suit les coordonnées de la voiture.

 

Ensuite la taille des sprites est uniformisée pour en simplifier le traitement, même si certains prennent moins. Ici la taille affichée de la voiture et de l’explosion sont de 10x10 pixels, mais leur taille réelle est de 16x10 pixels, soient 4x10 octets.

 

Les sprites ont été convertis en hexadécimal et intégrés au programme assembleur. Pour ce faire, on peut utiliser ConvImgCpc (sous Win2000 et WinXP seulement). Les sprites doivent alors être placés de haut en bas sur une image 320x200, enregistrée dans un format standard :

 

 

Sous ConvImgCpc, il faut ensuite sélectionner Mode 1, pas de tramage, les couleurs dans l’ordre indiqué plus haut, puis lire l’image. Ensuite il faut cliquer sur calculer, puis sélectionner l’option sprite et faire sauvegarder au format assembleur. La voiture en haut à gauche (position octet + 0), donne par exemple le résultat suivant (avec quelques retouches au niveau de la syntaxe) :

 

VOITURE  DB &00,&00,&00,&00  

         DB &70,&00,&00,&00  

         DB &78,&30,&80,&00  

         DB &0B,&0D,&40,&00  

         DB &0F,&CF,&48,&00  

         DB &0F,&CF,&48,&00  

         DB &0B,&0D,&40,&00  

         DB &78,&30,&80,&00  

         DB &70,&00,&00,&00

         DB &00,&00,&00,&00

 

On a bien 4x10 octets, même si dans ce cas il n’y a que 3x10 octets d’utilisés.

 

 

<< RETOUR  ---  SUITE : Création de l’image disque >>