Forum: Programmieren allgemein
Delphi
by Bummi,
20. Nov 2012
Durch die Geschwindigkeit bekommst Du wie gesagt bei einem Treffer in der Auswertung für x und y Überschneidungen. Ein recht brauchbarer Weg könnte es sein statt der Region die Du jetzt verwendest 4 Regions je 1 Pixel hoch(horizontal) bzw. breit(vertikal) und Kantenlänge - Geschwindigkeit * 2 , zentriert auf den Kanten, in der anderen Dimension zu verwenden.
Dann sollte ein CombineRegion...
Forum: Programmieren allgemein
Delphi
by Bummi,
16. Nov 2012
Die Bitmapprobleme hat ja Sir Rufo bereits beantwortet.
Das Klebeproblem lässt sich hierdurch beseitigen, allerdings ist das noch nicht final, da durch die Bedingungen Kollisionen z.B. oben und rechts gleichzeitig gefunden werden, was zu einer optisch nicht nachzuvollziehenden Reflexion führt. Ich habe leider jetzt nicht mehr die Zeit mir eine brauchbare Bedingung zu suchen. Aber wir haben ja...
Forum: Programmieren allgemein
Delphi
by Bummi,
16. Nov 2012
pack das ganze doch mal in ein Zip, so stochern wir im Nebel rum ...
Forum: Programmieren allgemein
Delphi
by Bummi,
12. Nov 2012
:cyclops:
Random für x und für y ... ok, dann weißt Du ja wo Du hinfassen musst, wobei gegen eine zufällige Positionierung nichts spricht solange Du weißt worauf sich x und y beziehen ... (z.B. top/left, center ...)
Forum: Programmieren allgemein
Delphi
by Bummi,
11. Nov 2012
Der Code mit + with war von Dir und lies darauf schließen dass x und y die linke obere Ecke eines Rechteckes um Deinen Kreis darstellen. Im letzen Post schreibst Du x und y wären die Mitte es Kreises, in diesem Fall bleibst Du bei den Bedingungen zwangsläufig kleben wenn z.B. der rechte Halbkreis den rechten Rand beinhaltet und die Geschwindigkeit klein genug ist.
Hier musst Du einfach die...
Forum: Programmieren allgemein
Delphi
by Bummi,
11. Nov 2012
die Stelle mit der Positionszuweisung sieht schon so oder so ähnlich aus ?
Kreis.x := Kreis.x + Kreis.speedy;
Kreis.y := Kreis.y + Kreis.speedx;
ich hatte vor längerem mal ein Thema wo so etwas auch verwendet wurde ...
http://www.delphipraxis.net/156716-grafiken-sehr-einfach-animieren-sprites-mit-drehung-und-zoom.html
Forum: Programmieren allgemein
Delphi
by Bummi,
11. Nov 2012
ich meinte etwas in der Art ....
if ((Kreis.y+Kreis.Height)>Image3.Height) or (Kreis.y <=0 ) then
Kreis.speedy := - Kreis.speedy;
if ((Kreis.x+Kreis.Width)>Image3.Width) or (Kreis.x <= 0) then
Kreis.speedx := - Kreis.speedx;
Forum: Programmieren allgemein
Delphi
by Bummi,
11. Nov 2012
bei den Seitenprüfungen musst Du x invertieren // wahrscheinlich ein Flüchtigkeitsfehler.
Du kannst links rechts zusammen und oben unten ebenfalls zusammen behandeln.