Jam #20 : Challenge "Basic Baby"
Back2TheCode Il y a 3 ans Club Privé Gamecodeur4

Bonjour à toutes et tous, mieux vaut tard que jamais … je viens vous parler de ma Jam #20 avec mon petit jeu de Baby-foot. Bon je sais que les votes sont fermés et de toute façon je ne visais pas le podium.

Je voulais avant tout coller au thème et mettre en oeuvre la détection des collisions.
Je ne suis pas mécontent du résultat final. Bon, je sais qu’il me reste une bricole à modifier lorsqu’une figurine (personnage sur les tiges) revient d’une position (à gauche ou à droite) quand les flèches de direction sont relâchées.
En effet, il faudrait que réinitialise la vélocité pour qu’elle augmente dans le sens où elle revient pour permettre une percussion avec une éventuelle balle sur sa trajectoire de retour.

J’ai mis une petite IA pour permettre de jouer en solo, en attendant de pouvoir jouer à 2, ce qui est finalement tout l’intérêt de ce type de jeu : montrer à son(sa) pote combien on est bien meilleur que lui(elle) !

La partie dure 2 minutes et toutes les 30 secondes, le mode « flipper » s’active. Normalement, j’activais automatiquement dans la foulée le mode « multiball » provenant des 4 coins du terrain pour permettre plus de rebonds et d’opportunités de but.

J’ai finalement décidé de le désactiver de façon automatique tout en laissant la possibilité au joueur de l’activer en appuyant sur la touche « M » du clavier.

La raison est simple, c’est que cela génère régulièrement mais pas systématiquement un « freeze » de l’application qui ne répond plus et je voulais proposer une version opérationnelle.

Vous pourrez voir dans la vidéo ci-jointe qu’il n’y a pas eu de problème.

J’en appelle à « la force toute puissante du crâne ancestral » … euh je veux dire aux élèves de gamecodeur au cas où vous auriez des idées sur le problème en question en jetant un oeil aux sources du programme que j’ai joints sur la page itchio (je vais passer le message sur le forum pour solliciter de l’aide).

Le bug se produira vite si vous appuyez plusieurs fois sur la touche « M » pour avoir plein de balles.

J’avais d’abord pensé à un trop grand nombre de sons, joués sans gestionnaire de son particulier, mais le problème demeure en mettant en commentaire la fonction concernée (love.audio.play(sound)).

J’ai ensuite réalisé que l’ordre de ma boucle parcourant les balles n’était pas le bon et pouvait poser problème lorsque je supprime une balle de la liste lstBalls. Cela n’a eu aucun impact après correction ou même en mettant en commentaire le remove : table.remove(lstBalls, n)

J’aurais donc tendance à penser que :

  • soit j’ai une « fuite de mémoire »
  • soit mes parcours imbriqués de listes sont mal faits ou encore trop gourmands.

Voilà pour les pistes. Merci pour vos suggestions et lumières.

Tant que ce problème ne sera pas identifié cela m’empêchera de poursuivre ce petit jeu que je voudrais bien continuer tranquillement en ajoutant des fonctionnalités tout en le rendant plus facile à jouer (avec la sélection automatique de la tige la plus proche de la balle par exemple etc.) et peut-être essayer de le porter sur Mobile avec Corona.

Merci d’avoir pris le temps de me lire jusqu’au bout.

Bon code !

 

 

Comments (4)

Original ce mélange flipper/baby foot. Je vois que tu as pu ajouter les sons, classe. Encore un peu de travail et ça devrait le faire. 🙂 Concernant ton « bug », je ne peux pas t’aider, malheureusement. Je n’arrive pas à me plonger dans mon propre code pour le moment donc celui des autres… j’espère que tu te débloquera bientôt. Bonne continuation !

Merci Little Ryu pour ton commentaire.

Il semblerait que le problème constaté ne se produise que sur mon pc et ne viendrait donc pas du programme, tant mieux. Je creuserai cela. Bonne continuation à toi également.

Bon code.

je tombe vers les 35 fps avec 400 balles mais j’arrive pas a en avoir plus que ça, ensuite ça remonte à 60 fps, ceci dit quel l’intérêt de jouer avec 400 balles ?
limite le mode flipper a 10 balles maxi a l’écran sinon c’est ingérable et c’est bon.

Merci Duruti pour ton retour, qui confirme ce que me disait Stormbringer qui ne reproduit pas non plu le souci.

Il semblerait que le problème constaté ne se produise que sur mon pc et ne viendrait donc pas du programme, tant mieux.

De mon côté, le souci se produit parfois qu’avec 12 balles en plus. Je vais regarder du côté du driver de ma carte vidéo.

Je te dirai si je trouve le pourquoi.

A bientôt.

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.