Collision Delphi/GLSCENE

ProgMiaou Messages postés 1 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 5 mai 2010 - 5 mai 2010 à 08:57
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 - 6 mai 2010 à 18:06
Bonjour,
Je travail sur GLSCENE et Delphi 5.
Je fais un programme de simulation de vol. Le but est d'envoyer un objet (automatiquement) vers un point précis tout en évitant les obstacles.

Maintenant mon problème, les obstacles étant généré à une position aléatoire, il arrive que certain obstacles se retrouve collé entre eux et donc actionne le collision manager.
Je voudrai savoir comment faire pour que les collisions ne soit gérer uniquement entre l'objet et les obstacles. (En gros sélectionner dynamiquement un groupIndex.)

Partie de mon code gérant la création dynamique des obstacles:

for i := 0 to StrToInt(NbrObstacle) - 1 do           //Création des obstacles dynamiques
  begin
    NewSize := Random(20) + 1;

    PosX := Random(NewPositionX) - trunc(plane.Width / 2);
    PosZ := Random(NewPositionZ)- trunc(plane.Height / 2);

    Cube[i]:=TGLCube.CreateAsChild(DC_Cube);
    Cube[i].CubeWidth:=(1);
    Cube[i].CubeHeight := NewSize;
    Cube[i].Position.X := PosX;
    Cube[i].Position.Z := PosZ;
    Cube[i].Position.Y := Cube[i].Position.Y + (Cube[i].CubeHeight / 2);
    Cube[i].Behaviours := CFPT.Behaviours;      //Récupère les behaviours de l'obstacle principal.


    Memo1.Lines.Add(intToStr(trunc(Cube[i].Position.X)) + ' ; ' + intToStr(trunc(Cube[i].Position.Z)));


Merci d'avance

1 réponse

cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
6 mai 2010 à 18:06
bj ProgMiaou
Que ce soit GLScene ou D5, c'est un problème de vérification de coordonnées. => Algorithmique.
Tes obstacles définissent des limites en X et Y que ton Objet (gravité ou pourtour) ne doit pas franchir.
bonne prog!
Jean_Jean
0
Rejoignez-nous