AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi "Kollidieren" von drei Objekten verhindern

"Kollidieren" von drei Objekten verhindern

Ein Thema von Luis · begonnen am 26. Dez 2018 · letzter Beitrag vom 2. Jan 2019
 
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: "Kollidieren" von drei Objekten verhindern

  Alt 27. Dez 2018, 16:34
Hallo,
Augenkrebs

Rücke bitte richtig ein und benutze (hier) immer begin end
Ab Kiste k4 wirst Du mächtig Probleme bekommen,
wenn Du nicht wie vorgeschlagen alle Kisten in eine Liste packst.

Du musst dann nur eine Prüfung auf 2 Kisten machen,
benutzt aber die Schleife.

Ausserdem würde ich mit einer virtuellen Kiste arbeiten,
die die Ziel-Position der bewegten Kiste enthält, als ob es keine anderen Kisten gibt.

k_Ziel:= k1; // Daten von Kiste 1 holen
K_Ziel.Top:= K_Ziel.Top-50;

Jetzt k_Ziel mit kx (k2-k10) prüfen, ob es eine Überlappung gibt.

Bei der Überlappung würde ich nicht auf Überlappung, sondern auf Nicht-Überlappung testen.
Das ist einfacher, Bsp:

Frage: Liegt ky von der Höhe überlappend auf kx?
ky.Top<kx.Top+kx.Height

Und das gleiche für links, rechts, oben unten.
Am besten mal auf Quadrat-Papier aufmalen oder 2 Kisten ausschneiden und übereinanderlegen.
Heiko

Geändert von hoika (27. Dez 2018 um 16:39 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz