Je vous l’avoue humblement, je viens de me sortir d’un de mes plus difficiles tests de programmation jusqu’à maintenant!
250 petites lignes de codes qui sont passées proches me rendre fou, je vous le dis.
Comme quoi des fois ce n’est pas la grosseur qui compte… 😉
Dans les précédentes démonstrations »in game », mon héros est toujours localisé en plein centre de l’écran, ce qui cause un problème de jouabilité à mon avis. Le joueur voit autant en arrière qu’en avant du personnage, alors que, par définition, le gros de l’action se déroule à l’avant du héros. Dans ce cas, me direz-vous, on a qu’à déplacer le centre un peu vers la gauche pour laisser plus de champs libre à la droite du héros. Comme ça on voir les ennemis venir et c’est tant mieux.
Ok, mais si mon héros se déplace tout à coup vers la gauche dans le monde en 2D dans lequel il est contraint? Là, on ne voit plus rien…
Je voulais donc modifier ma class Camera (qui n’est pas une caméra du tout en fait, mais plutôt une matrice qui calcul la position relative du héros par rapport au monde du jeu, mais bon) pour la transformer en CameraDynamic. Une caméra qui se placerait au bon endroit en fonction de la direction que le héros emprunterait.
L’idée n’est pas nouvelle. Les Marios et autres platerformers modernes ont pour la plupart implémenté différentes solutions à ce problème. Voici ce que mon approches donne:
En bonus, si on ne touche à rien, la caméra se recentre tranquillement sur le héros!
Nice, non?
