Voila ce que donne le moteur de Tilemap.
J'ai ajouté une fonction auto-scroll, dont le pas de déplacement correspond à un tile.
L'auto-scroll tient compte des limites min et max de camera pour la submap et s'arrête en butée si nécessaire.
Quand on le lance on choisi une direction, une vitesse ainsi qu'une durée.
Les submaps, les sprites ainsi que la camera ont un positionnement dans la map codé sur 16bits pour x et 16 bits pour y.
Cette position est ensuite ramenée à un systeme 8bit pour le positionnement écran des sprites et submap en fonction de la position de camera.
Pour avoir un rendu fidèle à RD, le code objet fige les contrôles et l'animation lors de l'auto scroll.
Le changement de submap est opéré de la manière suivante :
- a chaque tour de la boucle principale on vérifie si le personnage entre en collision avec une zone positionnée dans la map.
- on ne contrôle que la zone de sortie de la submap en cours (évidement)
- en cas de collision, on charge la submap suivante et on passe à la routine de détection suivante
Le code est modulaire et peut être adapté a tout type de jeu ...
J'ai encore pas mal d'idées pour les tiles et le scroll, mais je dois avancer sur d'autres sujets, j'y reviendrai plus tard.