Faire évoluer une bille dans un labyrinthe

Bonjour à tous,

Premièrement bravo pour cet outil que je découvre et réellement unique puisqu’il dispense au max l’utilisation du codage.

Après avoir visionné plusieurs tutos, je trouve l’interface relativement accessible et pour apprendre le système, j’ai commencé un test sur un petit jeu de labyrinthes, on doit juste conduire une bille d’un point A à un point B.

Ainsi pour commencer, j’ai utilisé un générateur de labyrinthes qui exportait en svg, j’ai récupéré l’image dans inkscape pour en retirer le fond et ne garder que les murs puis réexporté en png, l’idée étant donc d’essayer de faire évoluer ma bille dedans.

Cependant, il semble que la bille ne reconnaît pas les « murs » et se contente de rouler sur le bord de l’image.

Je me creuse la tête depuis plusieurs jours pour trouver comment formater l’image à importer pour pouvoir faire évoluer des objets « dedans ».

Auriez-vous des suggestions ?

Merci de votre éclairage

Alors, je fais différents essais, notamment sous gimp pour n’exporter que la structure des murs de mon labyrinthe, sans fond, gimp le fait bien, d’ailleurs quand je récupère mon labyrinthe dans inkscape après, je ne sais le sélectionner qu’en cliquant sur le trait noir qui forme les murs… si je clique à côté, l’image ne se sélectionne pas, démontrant que j’ai bien une image sans fond avec juste le trait qui forme les murs…

Cependant, quand j’importe cette image dans GD, elle considérée comme “pleine” de sorte que la bille ne sait pas la traverser, on dirait que GD ne gère pas le fond vide…

Y a-t-il une solution pour ça ?

Merci de vos précisions…

Dans Gdevelop comment gère tu les collisions tu utilise quel événement/condition ?
on peux voir une capture de tes événements ? par exemple il y a deux conditions pour les collisions une dans les objets et une dans les sprites (plus précise), celle des objets utilise un masque de collision alors que celle des sprites utilise les pixels de l’image

Bonjour Kamigeek et merci de ta réponse…

Alors je n’en suis pas encore à définir de conditions, je regardais de base les interactions entre les objets, pensant, naïvement peut-être, que donner un comportement physique suffisait…

Se pourrait-il que je puisse régler cette question à travers les conditions/actions ?

Merci de tes conseils…

pour donner une idée, voici la scène, c’est donc la partie en violet qui est prise en compte et non les bords de mon labyrinthe…

hostingpics.net/viewer.php? … Screen.png

(la balise “image” ne semble pas fonctionner

tu utilise que les comportements si j’ai bien compris, je pense pas dire de bêtise en disant que le comportement physique ne prend pas par défaut le vide de ton image, il utilise un masque de collision rectangulaire, dans les propriétés du comportement tu peux spécifier un masque en forme de cercle ou utiliser un polygone personnalisé mais je ne sais pas trop comment gérer cela surtout que la forme de ton labyrinthe est plein d’arrondi
tu peux peut être utiliser les événement pour déterminer si la bille est en collision avec les murs du labyrinthe avec un événement bille est en collision avec labyrinthe (pixel perfect) et utiliser les actions qui ajoute des force à la bille pour la repousser des murs…
dans ton idée c’est le labyrinthe qui tourne ou c’est la bille que l’on déplace au clavier ?

j’utilise en effet les comportements et c’est de fait le vide qui ne semble pas pris en compte, même en changeant les dites propriétés où on peut en effet choisir rectangle ou cercle, cela n’aide pas car alors, la bille contourne la forme ronde du labyrinthe mais n’entre pas dedans, le labyrinthe est considéré comme une image pleine…

manifestement, les polygones ne semblent pas si personnalisés, on peut composer des rectangles en donnant les coordonnées des 4 coins…

limite avec des labyrinthes uniquement rectangulaires peut-être et recomposer le labyrinthe avec des masques de collision… ça va en faire un paquet pour les grands modèles… ce serait si simple que GD tienne compte du vide de l’image… :smiley:

ben fonctionne pas non plus les poly perso, ça reste l’image qui est prise en entier… :frowning:

ce que je voudrais ne serait-il tout simplement pas possible sous GD ?

dans le gameplay que tu souhaite, la bille se déplace par interaction du joueur (touche du clavier) ? ou elle subit seulement la gravité (comportement physique) ?
ce que tu souhaite faire est probablement possible mais il faut bien choisir les événements et condition pour le réaliser

alors dans un premier temps, c’est le joueur qui déplace la bille dans le labyrinthe avec juste des boutons d’orientation mais l’idée serait plutôt que la bille subisse la gravité et faire pencher le labyrinthe dans la direction où elle doit aller, pour bien faire en orientant simplement le périphérique et pas en utilisant des boutons…

j’ai une pseudo solution en refaisant intégralement le labyrinthe (rectangulaire) sur un autre calque avec des sections de droites mais c’est laborieux et ça c’est disons la manière “manuelle” pour développer les principes de base mais en fait, je voudrais intégrer un code pour générer les labyrinthes en natif et les utiliser donc pour jouer…

au lieu de faire des portions de droite je dirai plutôt des ronds, il te suffit d’un faire un puis de le dupliquer sur tout les murs du labyrinthe, comme c’est le même objet qui est dupliqué tu as à gérer qu’une seul fois son comportement physique d’obstacle, tu fait cela sur un calque qui sera invisible et je pense que ça devrai passer, comme les rond n’ont pas d’angle droit il y aura moins de problème pour que la bille glisse le long des murs je pense mais cela dit il y a peut être d’autre solution, je ne vois pas trop laquelle mais il y a un exemple de casse brique il me semble qui gère les collision d’une bille contre les murs

pour tester la physique, commencer par un simple pachinko aurai été plus simple :stuck_out_tongue: :laughing:

en fait tu n’es pas loin du tout avec les pachinko, c’est l’idée de base, mais dans un premier temps je travaille le principe du laby…

alors les portions de droites fonctionnent bien, sur un laby rectangulaire en tous cas… j’en ai fait une à laquelle j’ai donné un comportement physique puis je la duplique de fait sur un calque à part et en suivant le tracé…

le prob, c’est que ça prend une plombe, quasi 1h pour un laby petit à moyen et l’idée est de faire créer dynamiquement les laby par l’application en générant donc une sortie qui pourrait être gérée par GD, limite en passant par une petite conversion…

les générateurs de laby permettent d’exporter vers du PDF ou du PNG, faudrait que je trouve un moyen de faire passer les images générées dans GD…