![]() |
"kenntbeziehung" zur laufzeit ?!
Liste der Anhänge anzeigen (Anzahl: 1)
Hi ich versuche es irgendwie zu schaffen das die grünen und roten Kreise die rechteckigen Felder "kennen" sodass sie wissen wann sie sich auf ihnen befinden.
Das Problem ist das die Shapes alle zur laufzeit erstellt werden und die Positionen der Shapes auf dem Fenster per Random zugeteilt werden. [edit=Matze]Bild angehängt. Die Imageshack-Server sind einfach dermaßen langsam, das möchte man keinem zumuten müssen. MfG, Matze[/edit] |
Re: "kenntbeziehung" zur laufzeit ?!
Und wo liegt das Problem? Du hast doch die Koordinaten von den rechtecken und die Position der Kreise. Jetzt musst du nur noch schauen, ob der Mittelpunkt eines Kreises weniger als ein Kreisradius an so einem Rechteck entfernt ist und du hast schon mal eine recht gute Lösung gefunden.
Alternativ: nimm eine weiße Oberfläche, male die Rechtecke grau rein und addiere das Bild der Kreise rein. Dann musst du nur noch nach Pixeln mit der Summenfarbe suchen und hast schon eine pixelgenaue Kollisionsabfrage. Und sowas nennt sich nicht 'kenntbeziehung' sondern Kollisionsabfrage :wall: |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Multimedia" verschoben.
Delphi-Frage |
Re: "kenntbeziehung" zur laufzeit ?!
Also pass mal auf die Shapes sollen nicht kollidieren !
Die Kugeln sollen wissen wenn sie sich auf der FLÄCHE der recheckigen Shapes befinden also einen Permanenten Vergleich mit ihren Koordinaten und der FLÄCHE der Rechecke . |
Re: "kenntbeziehung" zur laufzeit ?!
Kennst du denn die Koordinaten & die Größe der Kugeln und der Shapes?
|
Re: "kenntbeziehung" zur laufzeit ?!
Hi,
Kollidieren heißt nicht "abprallen" oder "dagegenlaufen" sondern eine A kollidiert mit B wenn A, B irgendwo berührt. Also wenn A, B schneidet dann kollidiert A mit B oder andersrum. Also ist das was Nikolas dir vorgeschlagen hat genau das richtige ;) Gruß Neutral General |
Re: "kenntbeziehung" zur laufzeit ?!
Wenn du also die Rechtecke nicht drehen willst, so dass sie immer parallel zu den Achsen liegen, ist die Abfrage trivial:
Delphi-Quellcode:
Wenn du dir das aufzeichnest, wirst du sehen, dass diese Lösung nur eine Näherung ist, du in den Ecken also einen Fehler von ein paar Pixeln machst. Wenn du kleine Kugeln hast, dürfte das nicht allzu schlimm sein, sonst musst du da noch eine besondere Erkennung machen.
if ((ball.x+radius)>rechteck.links) and ( (ball.x-radius)<rechteck.rechts) and
(das gleiche vertikal) then KOLLISION(); Wenn du das mit den Farben machst, wirds wirklich exakt, aber auch etwas langsamer. // So dürften die Klammern passen. Glaub ich. Kennt jemand Scheme? /* doch nicht. vielleicht aber jetzt */ |
Re: "kenntbeziehung" zur laufzeit ?!
Du brauchst nur ein paar Klammern mehr als in dem Beispiel von Nikolas ;)
|
Re: "kenntbeziehung" zur laufzeit ?!
Zitat:
|
Re: "kenntbeziehung" zur laufzeit ?!
Hat sich eh erledigt, da editiert :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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