![]() |
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
ntop und nleft sind die Positionen, die nach einer ungeprüften Bewegung angenommen würden. Und was sind denn wohl die Minimalwerte für Left und Top, die Deine Kreise annehmen dürfen? Kleiner Tipp: das ist bei beiden das Gleiche und könnte als Konstante mit Namen ZERO deklariert werden.
|
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
Zitat:
|
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
Wenn Left < 0 oder (Left + Width) > Form.ClientWidth wird, Richtung umkehren, das Gleiche analog für die Y-Achse.
|
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
Zitat:
Delphi-Quellcode:
Weil jetzt bewegt es sich nurnoch in x richtung und wackelt hin und her.
// Obere Grenze prüfen
if ntop > ( 0 + k.Height ) then begin k.speedy := - k.speedy; // Richtung umdrehen end; // Linke Grenze prüfen if nleft < ( 0 + k.Width ) then begin k.speedx := - k.speedx; // Richtung umdrehen end; |
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
Und so?
Delphi-Quellcode:
if (ntop < 0) or (ntop + k.Height > ClientHeight) then
k.speedy := - k.speedy; if (nleft < 0) or (nleft + kWidth > ClientWidth) then k.speedx := -k.speedx; |
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
Mal dir das doch einfach mal auf, dann sieht man das auch besser.
Hier mal ein paar Hinweise: Mit Top und Left ist die linke, obere Ecke beschrieben. Über die Informationen Width und Height ist es möglich auch die untere und rechte Kante zu bestimmen. Rechte Kante = Left + Width Untere Kante = Top + Height Man kann sich das aber auch anders vorstellen: Der Bereich, indem sich die linke obere Ecke sich befinden darf ist:
Code:
also
0 <= Kreis.Top < Form.ClientWidth - Kreis.Width
0 <= Kreis.Left < Form.ClientHeight - Kreis.Height
Delphi-Quellcode:
if ntop >= Self.ClientHeight - k.Height then
... if ntop < 0 then ... if nleft >= Self.ClientWidth - k.Width then ... if nleft < 0 then ... Zitat:
|
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
danke so geht es
|
AW: Kreise sollen von Wänden abprallen, tun sie aber nicht
Abfrage falsch!
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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 by Thomas Breitkreuz