Hello hello tout le monde !
Je viens vous voir car je galère à faire une mécanique pour mon jeu.
En faite, vous connaissez les jeux de réflexion en vue de dessus où on à une rivière que le joueur ne peut pas passer, mais qu'il a à sa disposition des blocs (des boîtes, des caisses...) qu'il peut pousser. Et donc le but est de se frayer un chemin en poussant les blocs sur la rivière, et donc, en faisant ça, de se créer un chemin.
Je galère beaucoup pour reproduire cette mécanique dans mon jeu. En plus, difficulté supplémentaire, je n'ai pas un déplacement case-par-case mais libre. (mon personnage à le mouvement prédéfini 8 directions, que j'ai bloqué en 4 directions. Je le dirige avec un objet joystick externe qui fait qu'il avance continuellement à une vitesse de 45 tant que le bouton est pressé.)
Et .... Du coup, je galère à faire deux choses bien précise :
Problème n°1 : Bouger mon blocs correctement à la bonne vitesse et dans la bonne direction lorsque mon joueur le colle, tout en réussissant à bloquer le mouvement si mon joueur change de direction, ou si le bloc se colle à un mur de l'autre côté
Problème n°2 : J'avais dans l'idée de faire en sorte que si 90% à100% de l'image du bloc se trouve au dessus de mon sprite "Eau", il fusionne avec ce dernier (dans le sens où je change l'animation de mon sprite "Eau" par un sprite "Blocs noyé.
Vous voyez ? Je vous donne un aperçu en pièce jointe à ce message !
je vais te faire ça ;)
est ce que tu peux poster ton mfa? ca permet de partir avec ta base
Oh nice !! Je t'envoi ça dans 5 min^-^
Voilà le MFA, je t'en fait un où j'isole ce qui est important pour le bon fonctionnement de mon perso, et où je vire tout ce qui compte pas, ça va aider à pas s'emmêler les pinceaux haha
Pour le déplacement, il faut pas se servir des touches du clavier (bien que ça fonctionne mais c'est pas représentatif), il faut maintenir un clic gauche dans la partie gauche de l'écran, et de choisir la direction en orientant le curseur !
(et si tu vois un objet "Ice" ainsi qu'un groupe d'évènements "Ice", n'y prête pas attention, je l'ai laissé dans ce MFA car j'avais paramétré des conditions pour gérer les déplacements de mon perso lors qu'il marche dessus, mais pour ce cas précis, ça nous intéresse pas du tout)
AH OUI dernier détail, je précise mais c'est un projet Android, donc faut faire attention aux extensions car tous ne sont pas compatible avec ce module :o
ça marche je m'occuper de ça
ça ne veux par telecharger, je pense que c'est un probleme du ce site, peux tu le deposer sur dropinfini stp? et laisser l'adresse du lien ici ( en cliquant sur l'icone "fichiesr" puis sur "ajouter depuis un lien") car le copier collé d'un lien ne semble pas fonctionner
Ok,
Voici un lien vers un dossier partagé Google Drive, c'est le plus rapide pour moi haha, tu pourras également ajouter des fichiers dedans (j'ai ouvert l'upload à tous) comme ça c'est plus pratique :)
https://drive.google.com/drive/folders/1qlVS30AAb-YnldPun1RXRB7EYmiBQtKC?usp=share_link
bon encore un souci ;) il demande l'extension android+ et je ne l'ai pas, si elle n est pas necessaire peut tu l'enlever stp
C'est fait ! J'ai MAJ !
est ce que tu veux absolument utiliser le mouvement 8 direction predefini?
Ça m'arrangerai beaucoup oui
j'ai déposé un truc, c'est le principe de base
il faut l'adapter a tes besoin, par exemple si tu veux que ton personnage s'arrete si il est bloqué par 2 caisses collées l'une a l'autre, etc. en principe pour ce genre de jeux les personnages ne se deplacent pas pixel par pixel mais plutot par tranche de pixel , comme si il se deplacaient case par case mais avec une transition fluide si bien que quand ils ne bougent pas, ils sont forcement arrivés sur une "case"
si tu as besoin d'autre chose n'hesite pas
J'ai pu voir ton principe de base est c'est bien pensé :o
Bien que j'ai finalement eu un éclair de génie (haha) car j'ai réalisé que je pouvais utiliser le moteur "Physique" pour donner une impulsion aux objets :o
Et donc de pousser la caisse en lui donnant une impulsion à chaque collision.
Ce qui du coup rend un résultat un peu plus "stable".
En revanche, je suis toujours coincé par rapport à l'eau. J'ai réussi à faire en sorte que si la caisse touche le point d'action du sprite d'eau, ce dernier se détruit. En revanche, c'est pas très précis. Le contact se fait trop rapidement. Mais le plus embêtant, c'est quand on veux suivre un chemin déjà tracé entre deux blocs d'eau. Là, la caisse se prend soit le bloc d'eau d'en haut ou d'en bas.
Vous avez eu une idée de comment je pourrai faire pour que l'action de la caisse qui se "noie" dans l'eau ne se réalise que si une majorité de pixels de la caisse (ou quelque chose dans le même genre) se situe au dessus du sprite d'eau ? Quelque chose donc qui permettrait d'avoir un peu de marge quand on déplace une caisse même si elle touche un peu l'eau, et qui permettrait aussi d'apporter davantage de précision d'action pour le joueur.
(j'ai mis une nouvelle version du MFA sur le google drive qui commence par V3)
C'est la je pense qu'arrive la limite de ta méthode, si je comprends bien ta caisse peut se retrouver un peu 'importe ou donc elle peut se retrouver à cheval sur 2 bloc d'eau, à ce moment comment ce se passe ?
Et bien dans l'idée, ce n'est pas grave si le bloc se retrouve à cheval entre deux blocs d'eau car ce que je cherche à faire, c'est de le faire "fusionner" avec le sprite d'eau avec qui il aurait une majorité de pixels en commun !
Maintenant, la difficulté c'est de déterminer comment mettre en œuvre cette idée
c'est plus compliqué en effet, mais a part avec des detecteurs je ne pense pas qu'il y ait d'autre solution
je t'ai déposé un fichier qui contient le principe
Excellente idée ! Ton principe marche du tonnerre !
Je l'ai adapté au mien en faisant quelques ajustements pour que ça prenne en compte plusieurs caisses et une réinitialisation !
J'ai mis une V4 si tu as envie de voir !
Merci beaucoup, jusqu'à là, je penses qu'on tiens un bon bout là ! :)