1

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.
There is no spoon.

2

- pourquoi est-ce que tu as besoin d'un champ "action" spécial ? le numéro du tile te suffit pas à déterminer l'action ? (quitte à dupliquer certains tiles s'ils peuvent avoir un état caché)
- pour les animations il te suffit a priori d'avoir un "numéro d'animation" qui te permet d'aller chercher toutes les infos que tu veux dans une "table d'animation", non ? (donc 1 octet par tile ; plus peut-être 1 octet par tile si tu as besoin d'une map qui contient les tiles "physiques")

enfin j'ai peut-être mal compris ton pb, tu cherches bien à réduire la taille des maps et du code, pas la taille des informations sur les tiles ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

Les numéros de tiles diffèrent selon les niveaux (qui sont déjà codés - pas le choix) donc pour l'action je ne peux pas me baser dessus. De plus une table spécifique d'action est codée dans le fichier de niveau.
Pour les animations, je vois pas ce que tu veux dire. j'ai besoin nécessairement du numéro d'indexe de départ et du nombre d'étapes. Aussi, il me faut également 2 octets pour gérer les ralentissement d'animation (comme pour les animations de tiles).
There is no spoon.

4

bien sûr, mais tu n'es pas obligé de stocker tout ça dans la map même non ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

non, mais je veux avoir un tableau unique pour faire un parcours unique...
There is no spoon.

6

Je ne crois pas que ce soit incompatible avec la solution de Pollux confus
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

ben j'ai pas tout compris alors. Désolé.
il y a une réflexion à faire de ce côté. Mon but étant de faire un traitement unique pour toutes les tiles quelles soient animées ou non pour ce qui concerne les tiles d'avant plan. Pour ce qui est de l'arrière plan, je m'en fiche puisque c'est fixe.
There is no spoon.

8

9

comme je code la chose sous unix, il me faut trouver une structure commune aux 2 plateformes: unix et TI avec les containtes du jeu.

sisis, ne désespérez pas, il sortira le jeu grin
There is no spoon.