Keyboard

Bon, je viens de  »droper » le clavier comme contrôleur de jeu supporté pour la suite du développement.  Tout se passe sur la manette de XBoX maintenant.

En fait, je voulais ajouter le joystick de la dite manette (le DPad était déjà utilisable), et je me retrouvais à écrire le code des inputs en triple (clavier, DPad et joystick).

Quand on en sera au point où je vous fournirai une démo jouable (!), je réintégrerai le clavier pour ceux qui n’ont pas de contrôleur XBoX, mais en attendant, je me simplifie un peu la vie.

Faut se faire plaisir des fois…

Oh, et il y a un ennemi, un  »boche », de dessiné!

Il a une moustache, ce n’est assurément pas le boss de la fin :/

 

Boche

Enfin!

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?