Coder sur PC Engine c'est facile ! [PART 2]

Publié le par F.L.

Coder sur PC Engine c'est facile ! [PART 2]


07- Déclarer un nombre, puis l'afficher

Voici comment afficher des nombres. c'est quasiment comme pour afficher du texte sauf qu'il faut avant déclarer une variable qui contient ce nombre. Voici donc comment déclarer une variable. Juste avant la boucle (main), tapez :

char temps;

surtout n'oubliez pas le point-virgule ! Cette variable sera une variable char, c'est a dire un chiffre entier qui ira de 0 à 255. Au delà de 255, elle redeviendra 0. La PC Engine ne gère que les chiffres entiers et positifs
si vous avez besoin d'une plus grande amplitude pour votre variable, il faudra la déclarer comme ceci :

int temps;

La variable temps sera une "integer" et ira jusqu'à 32000, mais elle prendra plus de place en mémoire. Si ce n'est pas la peine, inutile de prendre de la mémoire en trop. Malgré ses performances, n'oubliez pas que la PC Engine n'est qu'une 8bits !

Maintenant que la console connaît votre variable temps, vous devez lui donner une valeur. 100 par exemple.
Ecrivez ceci :

temps = 100;

ceci ira dans le main.
et maintenant voici pour l'afficher :

put_number(temps,3,5,5);

ceci écrit la variable temps à l'emplacement x5 et y5
mais pourquoi il y a t'il un 3 entre temps et 5,5 ?
Et bien parce que Huc a besoin de savoir de combien de chiffres au maximum vous voulez pour afficher votre variable. Cette variable étant de maximum 256, 3 chiffres seront utiles. Voici a quoi ressemble votre code maintenant :

 

Coder sur PC Engine c'est facile ! [PART 2]

Sauvegardez, compilez, et vous voici avez une rom qui affiche un chiffre à l'écran :)
 

08- Afficher un background (fond d'écran)

Afficher du texte et des nombres, c'est utile, mais afficher une image c'est mieux ! C'est quoi un background ?
C'est une image qui reste en arrière-plan. c'est souvent le décor du jeu. Les sprites et écritures seront toujours affichés par dessus ce background. Cette image prend souvent une bonne partie de l'écran, voire tout. Ca peut aussi servir pour afficher le titre du jeu, etc...

Comment faire pour afficher une telle image sur PC Engine ? Avec des tiles.
Mais c'est quoi une tile ?

Les anciennes consoles affichaient tout ce qu'il y a à l'écran par blocs de 8x8 pixels, ces blocs sont des tiles, ou des carreaux en français. Pour afficher une image de 320x216 par exemple, la console va la découper en tiles de 40x27 tiles et les afficher dans un certain ordre et avec une ou plusieurs palettes de couleur.


Au secours, ça a l'air compliqué ! Et bien non, avec la Huc c'est très simple, il ne faut que quelques lignes de codes pour l'afficher, contrairement à d'autres langages.

Déjà, il faut dire à Huc quelle résolution d'écran vous voulez utiliser. Huc en gère 2, en 256 de large ou en 320. Personnellement, je ne travaille qu'avec la réso 320, car je trouve que 256 c'est trop étroit, Mais c'est vous qui choisissez. Si vous êtes en 256 et que vous affichez une image trop grande, ça ne buggera pas, mais on ne la verra pas en entier, dommage.

Pour déclarer votre résolution en 320x216, il faut la déclarer au debut du main :

set_xres( 320 );

si vous ne mettez pas ça, la PC Engine sera par défaut en 256


Et maintenant , voici pour déclarer votre image de fond :

#incchr(tiles_decor,"decor.pcx",40,27 )
/* Huc découpe votre image (decor.pcx) en 40x27 tiles */


#incbat(map_decor,"decor.pcx",0x1000,40,27 )
/* Huc définit une "map" à l'adresse 0x1000 qui affichera les tiles dans l'ordre */
/* pourquoi 0x1000 ? car c'est le début de la mémoire vidéo. j'y reviendrais plus tard */


#incpal(palette_decor,"decor.pcx" )
/* Huc définit la palette de 16 couleurs de votre image */


Ces trois lignes doivent être mises avant le main pour que le jeu connaisse cette image. Vous avez remarqué, j'ai mis /* devant mes explications et */ à la fin des explications. Ce sont des commentaires. vous pouvez les mettre dans votre code, Huc ignorera tout ce qui est entre ces symboles. C'est ce qu'on appelle mettre des commentaires. C'est très utile pour se retrouver dans le code, faire des pense-bête, etc....

Maintenant que la console connaît votre image, il faut l'afficher; une seule ligne suffit :

load_background(tiles_decor,palette_decor,map_decor,40,27);
/* affiche un background de 40x27 tiles grâce aux trois fichiers existants */


Voila, c'est tout. On résume ?

Coder sur PC Engine c'est facile ! [PART 2]

Placez votre fichier décor dans votre dossier de travail

Mais attendez, depuis tout à l'heure je parle de l'image decor.pcx, mais vous ne l'avez pas cette image sur votre ordi ! Pour l'exemple je vous en donne une sympa qui correspond à 40x27 tiles (320x216), j'espère qu'elle vous plaira, cliquez ici :


https://www.dropbox.com/s/9nhhzpjnz5j7dre/decor.zip?dl=0

Dézippez et mettez decor.pcx (pour l'instant) dans votre dossier racine (Huc si vous l'avez appelé comme ça). Plus tard pour vos propres images, il sera conseillé de mettre vos images dans le dossier de votre choix, par exemple "images" ou "gfx", comme ça les images seront bien rangées à part. Mais à chaque que vous déclarez une image, n'oubliez pas de donner le bon chemin :

Si les images sont classées dans le dossier images, au lieu de "decor.pcx" il faudra rentrer "images/decor.pcx".


Sauvegarder votre source (01.c), compilez-là, et admirez la résultat en lançant la nouvelle rom avec Mednafen... Je ne met pas l'aperçu sur le tuto, pour que ceux qui essayent les codes aient la surprise !

Vous pouvez aussi vous amuser à mettre du texte et du nombre par dessus-ce background, comme par exemple : "score" et une variable score à coté. Dans votre source, n'oubliez pas de placer les codes du texte et des chiffres après ceux du background, sinon le background les effacera. Pensez à l'ordre d'affichage.

Info importante format .PCX

Quand vous voudrez faire vos propres background, sachez que Huc ne gère que le format d'image PCX 16 couleurs. Pour convertir vos images, il vous faudra un logiciel de dessin genre photoshop, gimp, etc.... Moi j'utilise un vieux logiciel pour Windows 95 qui est très simple d'utilisation, léger et qui ne demande aucune installation, il s'appelle Mgi Photosuite. Ce qui est bien aussi avec ce logiciel c'est qu'il gère les vieilles palettes de couleurs. voici le lien :


https://www.dropbox.com/s/xi1fmzj7xd83csr/MGIphotosuite.zip?dl=0
(dans le dossier il faut lancer psuite.exe)
Quand vous aurez chargé une image à la bonne dimension (maxi 320x216) dans cet outil, diminuez ses couleurs et cliquant sur image >> diminuer les couleurs >> palette optimale.

 

Coder sur PC Engine c'est facile ! [PART 2]

La palette optimale sera une palette de 16 couleurs qui seront le plus proche possible de vos couleurs d'origine. En haut à droite, vous avez l'aperçu de la palette. Petite astuce, il faut que la couleur 0 soit noire, comme ça vous aurez le contour de l'image en noir, ça fait plus joli. Puis ensuite, sauvegardez votre images en cliquant sur pcx 4 bits(16 couleurs).

Voila, vous avez tout pour vous faire un joli background perso ! Un gros bout du tuto est passé, j'espère que vous suivez toujours ? Dans le prochain numéro vous allez apprendre à afficher un sprite (enfin !)

PS : N'hésitez pas à me montrer vos beaux background perso, je suis curieux de voir ça !

@+

Publié dans FOCUS

Commenter cet article

Goriot 05/04/2017 13:19

"un chiffre entier qui ira de 0 à 256" --> perdu, c'est 255...

onels4 04/04/2017 15:57

Super sympa , merci pour les lecteurs !

bricedenice 04/04/2017 10:06

franchement, continue comme ça c'est top, j'adore les tutos bien expliqué. ça donne envie.