23 jui
2008
2008
Chargement et affichage d'une map
Générer des maps facilement, c'est bien.
Pouvoir les utiliser dans le jeu, c'est mieux !
Comme expliquer précédemment, un des fichiers générés est un header C++ (.h) qui peut être inclus directement au code source. On peut utiliser ce qu'il contient directement là où a été inclus le header. Dans ce fichier, on fait une méthode qui prend comme paramètre un numéro, et on associe celui-ci au niveau grâce à un bon gros switch.
Un truc du genre :











Le chargement de la map consiste à lire le contenu du header et de générer ce qui nous intéresse en fait : une liste des caisses à afficher et à traiter. Beaucoup de boucles "for", un algorithme bête et méchant.
Une fois qu'on a ce tableau (qui est un attribut de la classe où est chargée la map), il faut afficher ce qu'il contient en fonction du contexte.
Ici le contexte, c'est le Parallax. Ce dernier utilise une variable pour le scrolling, qui représente la position où il est arrivé.
A chaque frame, on va donc examiner toutes les caisses et déterminer si elles sont sur l'écran (cad si leur position horizontale - le scrolling est entre 0 et 256, taille de l'écran). Si elles le sont, on les affiche !
Et ça marche pas mal. Sauf que quand je supprime une caisse (PA_DeleteSprite), le personnage disparaît... Et qu'il va falloir trouver une solution pour limiter le nombre de caisses en mémoire sprite, et ne pas mettre 50 sprites de caisses en vue quand seulement 10 sont utilisés...
Une bonne avancée, on approche du but...
Release fin août ! Le temps passe vite !
Pouvoir les utiliser dans le jeu, c'est mieux !
Comme expliquer précédemment, un des fichiers générés est un header C++ (.h) qui peut être inclus directement au code source. On peut utiliser ce qu'il contient directement là où a été inclus le header. Dans ce fichier, on fait une méthode qui prend comme paramètre un numéro, et on associe celui-ci au niveau grâce à un bon gros switch.
Un truc du genre :
switch(numéro passé en paramètre)C'est d'ailleurs pourquoi pour l'instant il n'est pas possible de créer une map et de l'ajouter dans le jeu sans recompiler : le jeu ne cherche pas sur la carte mémoire la map, elle est directement dans son code source et il faut l'ajouter à la main. Question de vitesse à l'exécution, et de simplicité pour nous à coder.
{
case 1:
charger le niveau 1 avec tels paramètres
break;
etc
}











Le chargement de la map consiste à lire le contenu du header et de générer ce qui nous intéresse en fait : une liste des caisses à afficher et à traiter. Beaucoup de boucles "for", un algorithme bête et méchant.
Une fois qu'on a ce tableau (qui est un attribut de la classe où est chargée la map), il faut afficher ce qu'il contient en fonction du contexte.
Ici le contexte, c'est le Parallax. Ce dernier utilise une variable pour le scrolling, qui représente la position où il est arrivé.
A chaque frame, on va donc examiner toutes les caisses et déterminer si elles sont sur l'écran (cad si leur position horizontale - le scrolling est entre 0 et 256, taille de l'écran). Si elles le sont, on les affiche !
Et ça marche pas mal. Sauf que quand je supprime une caisse (PA_DeleteSprite), le personnage disparaît... Et qu'il va falloir trouver une solution pour limiter le nombre de caisses en mémoire sprite, et ne pas mettre 50 sprites de caisses en vue quand seulement 10 sont utilisés...
Une bonne avancée, on approche du but...
Release fin août ! Le temps passe vite !



1 commentaire(s)
23/07/2008 à 13:38:23 Dernière modif. : 23/07/2008 à 15:02:51


