ProgMiaou
Messages postés1Date d'inscriptionmercredi 5 mai 2010StatutMembreDernière intervention 5 mai 2010
-
5 mai 2010 à 08:57
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 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)));
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 20183 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