Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: "Kollidieren" von drei Objekten verhindern

  Alt 26. Dez 2018, 19:30
Ich bin davon ausgegangen, dass Du einen Vergleich im Griff hast (habe das aber nicht weiter nachvollzogen).

Entsprechend habe ich das Problem so verstanden, dass Du auch weitere Kisten prüfen willst.
Dazu musst Du diese in einer Liste speichern und alle Einträge dann abarbeiten (statt einem Vergleich halt nacheinander alle vergleichen).

Die Vergleichslogik selbst kannst Du dazu am besten in eine eigene Funktion auslagern.


Zu Deinem Code würde ich empfehlen, den immer ordentlich einzurücken:
Delphi-Quellcode:
 if player.top = k1.Top then
   if player.left = k1.left then
     if k1.Top-50 <> k2.Top then
       k1.Top:= k1.top-50
     else
       if k1.left <> k2.left then
         k1.Top:= k1.top-50
       else
         k1.Top:=k1.Top;
Dann erkennt man, dass alle Prüfungen nur erfolgen, wenn player.top = k1.top ist.


So richtig verstehe ich nicht, was Du da machst.
Auf jeden Fall müsstest Du wohl Deine Kisten in einer Liste speichern und die Einträge nacheinander bearbeiten.

Sorry, falls ich Dich ganz falsch verstanden haben sollte.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat