[Aide] Problème collision et déplacement

Bonsoir à tous ^^ donc voilà je vous explique mon problème en détail étant débutant sur GameDevlop:

Donc voila le jeu se passe sur une planète et le personnage se déplace sur cette planète au extrémité (comme si vous marchiez sur les bords d’un disque (voici une fiche vous montrant le déplacement dl.dropbox.com/u/67595366/Deplac … lanete.pdf) )

Je voudrais que le personnage reste coller au extrémité de cette planète car dans l’actuel le héros traverse la planète (voici un screenshot dl.dropbox.com/u/67595366/screen.png).

Merci d’avance :smiley:

Je ne suis pas un expert sous Gd loin de la et je dirais même plus que tout comme toi je suis un débutant. Néanmoins si j’ai bien compris ton problème, la solution se trouve dans le moteur physique. En fait tu dois appliquer à ton personnage un automatisme de type “moteur physique” et dans ce même moteur, modifier certains paramètres. Dans ton cas et de mémoire je dirais que le paramètre principal à modifier est le paramètre gravité ( 0;9 ).

Voila j’espère avoir pu t’aider, dans le cas contraire et bien disons que j’aurais tout de même essayer et ne t’inquiète pas d’autres sauront t’indiquer mieux que moi la marche à suivre pour résoudre ton ou tes problèmes :stuck_out_tongue:

En effet le moteur physique serait un solution. Cependant si tu souhaites créer toi même un moteur :

  • Appliques-tu une force qui attire le personnage vers le centre de la planète, et une autre (légèrement plus forte) dans la direction opposée quand le-dit personnage est en contact avec la planète ?
    -Tu peux aussi essayer de gérer cela avec les distance entre 2 objets (un au centre de la planète, l’autre le joueur) ou les positions (s’il n’y a pas d’actions pour cela [la flemme de vérifier], Pythagore est ton ami :wink:).

C’est 2 méthodes serait dans le cas d’une sphère (ou d’un ovale) parfaite. Ce qui n’est pas le cas d’une planète. Mais tu dois pouvoir l’adapter. Il vaut mieux commencer simple puis complexifier une fois que cela marche parfaitement.

En gros, tu veux appliquer une gravité à la planète, qui attirera à elle tous les autres objets.

Je crois que GD ne permet pas de générer une gravité partagée entre les objets (il n’y a pas d’effet “aimant”). Il n’y a donc pas de moyen direct de créer une planète avec une gravité locale qui influence les autres objets à sa proximité.

A ta place, je me rabattrais sur ces deux solutions :

  • Mesurer la distance entre l’objet et le centre de la planète, pour déterminer si la planète influence le personnage et avec quelle intensité, et mesurer la position de l’objet par rapport au centre de la planète, pour modifier son angle (on oriente l’angle de la gravité pour que le perso reste collé à la planète et on lui met la tête en bas si son y est supérieur à celui du centre)
  • Tricher

Pour la triche, tu crées un petit objet rectangulaire avec une opacité à zéro. Ce sera le sol sur lequel le joueur tombe (automatisme->moteur physique). Tu mets ta planète juste en dessous, sur un calque séparé, et tu fais tourner son calque dans le sens où ton personnage avance. Bien sûr, en réalité, le personnage fait du surplace, mais comme tout le décor tourne, le joueur croit que son personnage tourne vraiment autour de la planète. Visuellement, le personnage reste au centre de l’écran, et la planète tourne en dessous.

Mais d’autres personnes plus familières avec l’automatisme Physics ont surement une meilleure solution. Il me semble qu’un GDiste a mis au point un jeu de gravité avec un vaisseau qui bondit de planètes en planètes.
Parce que l’une comme l’autre de mes solutions sont assez prises de tête à mettre en oeuvre.

Faut pas se laisser arrêter pour si peu : La gravité c’est rien d’autre qu’une facilité pour éviter de devoir appliquer une force à chaque objet. :slight_smile:
Si cette facilité ne convient pas, il suffit de la recréer soi même : Dans notre cas, GD propose une action pour appliquer une force vers une position ( Que ce soit avec ou sans le moteur physique ).
Il suffit ensuite, pour chaque objet qui puisse bouger, de lui appliquer une force pour chaque objet qui peut attirer.

Voici un exemple avec le moteur physique : Planets.zip (3.11 KB)
On peut très bien aussi se débrouiller sans moteur physique, en utilisant l’action permettant d’ajouter une force vers une position de façon similaire, et en ajoutant un évènement permettant d’écarter les objets qui bougent des “planètes” ( Ajouter une force dirigée vers le centre de la planète et de longueur négative à l’objet en collision avec celle ci ).

Personnellement je préfère recréer moi-même les effets physiques (je sais pas pourquoi). Le moteur pré-fait m’attire surtout pour sa gestion des collisions entre 2 objets.

Je vous remercie pour toute ces solutions j’en ai eu diverse je vais les essayer mais voila je voudrais que la planète servent d’aimant afin que le personnage puissent avance tout autour mais je ne sais pas si c’est possible aussi l’effet triche ne gênera pas ou causera des bug du genre des mauvais déplacement.

ps:Afin de crée un moteur physique quel langage est adapter a la conception ?