Salut tout le monde,
Profitant de l'occasion du changement d'environnment, je prévois de restructurer les données de mon projet et éviter la redondance des données.
Actuellement, dans la description d'un niveau, j'ai 2 plans fixes pour faire un effet de scroll parallaxe et un 3ème plan qui contient les tiles animées.
Utilisant le tilemap engine, j'ai d'office 2 vecteurs d'octets de même taille représantant les indexes de chaque tile d'une part et d'autre part, j'ai également un troisième vecteur de même taille que les 2 autres vecteurs correspondant aux actions à effectuer. Enfin, pour les tiles animées, j'ai une liste simplement chaînée qui contient les indexes de tiles avec les différentes caractéristiques pour générer l'animation qui est créée au chargement du niveau: indexe courrant, nombre d'étapes d'animation, trame courrante, nombre de trames à attendre (pour ralentir l'animation) etc. Je pense que l'on peut mieux faire en encombrement mémoire et surtout en traitement, le plan animé a son propre traitement.
J'avais eu l'idée de décrire de manière unique ma map avec une structure. Comme ça, c'est le même traitement pour tout le monde (1 seul vecteur de structure), donc à priori plus efficace. Ainsi que de refaire la bouclette pour dessiner la map qui dessinera les tiles QUE si leur indexe courrant a changé.
La structure que j'ai, fait actuellement 6 octets (indexe courrant de tile, indexe de démarrage, nombre d'étape d'animation, action, trame courrante, nombre de trames à attendre). Donc chaque case de ma map prend 6 octets en mémoire. Seulement voilà, dans la version actuelle, si des tiles ne sont pas animées elle ne prendront qu'un octet en mémoire, avec le nouveau shéma, même si la tile n'est pas animée prendra de toute manière 6 octets.
Mon problème est donc de savoir quelle structure je dois mettre en place pour que ça prenne le moins de mémoire possible avec le traitement le plus simple...
Pigé???
D'avance merci pour vos suggestions.
Fred.