Est ce que le "grab ledge" est buggué?


#1

Bonjour, je suis entrain de développer un platformer sur gdevelop dont une des fonctionnalités serait de pouvoir s’accrocher aux rebords/côté des platformes.
Pour cela j’ai donc activé l’option “Can grab platform ledge” sur mon perso et “Ledges can be grab” sur mes platformes.
Malheureusement si ça fonctionne pour certaines plateformes, de manière aléatoire sur certaines cela ne fonctionne pas, sans aucune raison apparente.
Je vous met en lien plusieurs exemple vidéo :

Ce qui est d’autant plus bizzare, c’est que rien qu’en ajoutant d’autres platformes dans la scène, visiblement ça peut modifier la capacité des autres platformes à être grab ou non.
Voilà si quelqu’un a une idée ou a déjà rencontré ce problème x)

Merci d’avance :smiley:


#2

Ce genre de comportements erratiques, ça me rappelle quand je faisais des erreurs dans ma feuille d’évènements, genre j’oubliais un guillemet, j’oubliais de renseigner une valeur obligatoire, etc. Je m’arrachais les cheveux sur des évènements précis alors que le problème était plus haut dans la feuille, dans des évènements sans lien.
Donc vérifie bien tout.

Concernant le problème, tu veux attraper les bords, mais les boites sont parfaitement empilées, donc y a-t-il vraiment un bord à attraper…
As-tu essayé de réduire un peu la hitbox pour laisser un espace entre les cases ?
Tu devrais peut-être opter pour une mécanique un peu plus sur-mesure qui te permettrait de t’accrocher aux murs.

Et sinon, pour qu’on examine le bug, il nous faudrait une ébauche de projet qui reproduit le problème (tout le dossier du projet).


#3

Coucou,
Voici le lien vers un projet simplifié mais qui contient le bug :
https://drop.chapril.org/download/7c074eb1a07c3c98/#Qeq9nFj-fEJYk_r64MT-ZA

J’ai l’impression qu’en réduisant les hitbox le bug apparait moins souvent, mais je trouve ça quand même bizarre comme manière de régler le problème. Surtout que ça explique pas pourquoi avec des full-hitbox le problème n’apparaît pas partout x)

Merci d’avance si quelqu’un a le temps d’y jeter un coup d’oeil :slight_smile:


#4

Tu utilises une hitbox différente pour l’animation de saut et d’accrochage, c’est ce qui cause ton problème.


#5

Coucou, après plusieurs tests même en mettant la même hitbox pour toutes mes animations, le problème est encore là.


#6

Refais encore quelques tests :sweat_smile:


#7

Visiblement, même sur ton projet avec les mêmes hitbox, j’arrive pas toujours à grab le ledge ><

(merci de l’aide malgré tout :smiley: )


#8

Arf. Ajoute un sprite à ton objet camera.


#9

Coucou, visiblement en appliquant ce correctif un peu magique à mes yeux, ça ne fonctionne toujours pas. Voici le lien du projet en question, si tu as toujours la foi d’y jeter un oeil :slight_smile:

Merci encore !


#10

Y a effectivement un problème avec ton projet, je vois deux objets joueur dans le débogueur.

T’aurais pas essayé de mettre ton joueur en global avant de faire marche arrière, ou quelque chose comme ça ?


#11

Oui mais ça, ça arrive que si tu lance le niveau depuis l’external layout “level_1” nan ?
Quand je lance la scène Game j’ai bien qu’un seul player.
Ce qui fait sens dans la mesure où c’est ma scène Game qui va construire le niveau basé sur les objets qu’il trouve dans l’external layout.


#12

En quoi ça explique le problème ? :slight_smile:
La scène charge le calque externe, la scène n’a pas d’objet et le calque en a un, donc il ne devrait y en avoir qu’un.

Quand je lance depuis le calque externe, ça fonctionne bien. C’est pour ça qu’on n’avait pas les mêmes résultats.


#13

En gros si tu lance depuis le calque externe, ça va t’afficher ce qu’il y’a sur le calque externe, et si je comprend bien, la scène Game va aussi se lancer en parallèle et donc reconstruire à nouveau ce qu’il y’a sur le calque externe (comme “Level_1” est rattaché à la scène “Game”)

Perso quand je lance depuis l’external layout “level_1” j’ai bien deux player dans le deboggueur mais pas quand je lance directement la scène Game. Ce qui bien entendu ne règle toujours pas mes soucis de grab ledge xD


#14

Quand on lance depuis le calque externe, normalement, ça charge simplement la scène auquel le calque est associé.

ça fonctionne pas mieux de ton côté, quand tu lances depuis le calque externe ?

Quoi qu’il en soit, ton projet est bogué…
Donc, je ne sais pas ce que tu as fait, mais évite de le refaire. :sweat_smile:


#15

Je veux bien que mon projet soit buggué mais même en refaisant le projet, le grab ledge est quand même buggué.
Ou alors il faut pas l’utiliser pour monter successivement un mur de platform, mais dans ce cas là il faudrait le préciser x)


#16

Si tu refais le projet en copie-collant les éléments du jeu, pas sûr que ça ne transfère pas le bug en même temps.
Si tu vois le double d’objets dans le débogueur, c’est que le bug a suivi.


#17

Non j’ai juste repris les assets, mais je vois pas en quoi des assets provoqueraient des bugs.
Là au contraire y’a qu’une scène “Game” et je place juste des platformes et un joueur : le grab ledge continue de bugguer


#18

Je viens de tester sur le “platformer Example” celui qui est fourni dans l’interface de Gdevelop. J’ai juste mis à la hitbox qui sert de player le comportement “GrabLedge” et comme on peut le voir sur le projet ci-joint, clairement le perso ne peut pas s’accrocher à tous les blocs de platformes. D’où ma question, est ce un bug? Est ce que le grab ledge du perso ne marche que dans certaines conditions (par exemple pour les blocs seuls ?)

Merci d’avance


#19

Bien vu. :smile:
Si je double la hauteur des blocs, le problème semble disparaitre, donc il y a un problème d’incohérence, à tout le moins.
J’ai transmis aux devs, on verra s’ils peuvent régler ça.


#20

Nice merci beaucoup :smiley: