dimanche 6 novembre 2011

Carnet de dev 6 : Putain de scrolling !!


Développer le scrolling des vagues ... J'avais toute la technique en tête, simplement recopier 16 fois les 2 caractères d'une vagues et les décaler à chaque fois d'un pixel. Simple en théorie. Normalement ça aurait du être simple en pratique ...

16 lignes de vagues avec chacune un couple de caractères forment le mouvement.

const byte vague1[] = {car1,car2,car1,car2,...};
const byte vague2[] = {car3,car4,...};

const *byte animation[] =
{
  vague1,
  vague2,
  ...
  vague16
};

Ce dernier tableau est un tableau de pointeur sur les différentes lignes de l'animation.

Puis, on utilise la commande put_frame du kit Coleco avec un index pour afficher l'une après l'autre les 16 animations de la ligne de vague.

signature :
void put_frame(void *table, unsigned char x, unsigned char y, unsigned char width, unsigned char height);

donc :

put_frame(animation[0],0,11,32,1); pour afficher la ligne d'animation 0 en position 0,11 pour une ligne de 32 caractères en largeur et 1 caractère en hauteur. L'animation[0] renvoyant bien un pointeur sur un tableau de caractères ...

A noter que j'utilise ceci pour le scrolling de Commando, en plus complexe. Chacun de mes objets à faire défiler dans Commando a une taille différente.

Et bien, sur HeliFire ... ça ne marche pas !!

Voici donc en vidéo, comment j'ai contourné le soucis, parce que au bout de 2 heures de recherche, je n'ai pas trouvé de solution ... Alors soit, je ne comprends rien en programmation, et je ne sais pas pourquoi le tableau de pointeur fonctionne sur Commando, soit c'est encore le compilo Coleco qui fait encore des siennes comme lorsqu'il me perd des valeurs d'attribut de structure ... (J'y ai le droit à chaque projet ...).

Aucun commentaire:

Enregistrer un commentaire