Etape #5 : Le tir des tourelles
Thibault Baron Il y a 3 mois Premium Pro - Adhésion à vie0

Yo les zarticho !

Aujourd’hui, j’ai eu du temps pour coder, donc je me suis attaqué au tir des tourelles. Car c’est bien beau d’avoir des tourelles qui se tournent vers le joueur, mais si elles ne tirent pas, elles ne servent absolument à rien !
Ainsi la première étape était la création d’un timer. Je l’augmente de dt à chaque update et quand il est supérieur à 1, il retourne à zéro en appelant la fonction servant à faire tirer les tourelles.
Mais qu’y a-t-il dans cette fonction ? Le principe est très simple. Comme pour le joueur, on a une table qui stocke toutes les balles tirées et la fonction ne fait qu’ajouter une balle à cette liste. Ensuite on parcourt la liste dans le update et le draw pour faire ce qu’on a à faire.
En ce qui concerne les collisions, j’ai simplement fait un copier/coller du code servant aux collisions des balles du joueur vu que ce sont les mêmes principes. Mais j’ai eu un petit problème : les balles sont codées pour disparaître au contact d’une tourelle. Sauf lors de la créqtion de la balle, je lui donne les mêmes coordonnées que la tourelle qui l’a tirée. Ainsi j’ai du changer les coordonnées de sorte à ce que ce soit en dehors de la hitbox de la tourelle, mais que ça reste en face de la tourelle pour un minimum de réalisme ! J’ai donc décidé d’utiliser les fonctions trigonométriques comme cela :

bullet.x = x + math.cos(bullet.angle) * tourelle_width / 2

bullet.y = y + math.sin(bullet.angle) * tourelle_width / 2

 

Ainsi les balles sont de nouveau bien positionnées !
J’ai également commencé à coder le système de vie du joueur mais rien de fameux pour l’instant.
J’aurais bien voulu vous mettre quelques screenshots mais le site est actuellement cassé (snif).

Sur ce je vous souhaite un bon code,
A bientôt,
Cordialement,
Thibault BARON / YogS-974

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.