![]() |
reflektierender Ball - Hilfe!
hallo
Ich bin ein blutiger Anfänger, nur damit ich mir eventuelle Kommentare erspare ;) ich muss ein kleines Programm schreiben, das dafür sorgt das ein Ball an den Wänden einer Begrenzung (eine weiße quadratische shape) abprallt bzw nach dem Motto "Einfallswinkel=Ausfallswinkel" reflektiert wird. Im Moment macht der Ball noch nicht das was ich von ihm will.
Delphi-Quellcode:
Ich bräuchte eure Hilfe!unit Uball; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) sgrenze: TShape; sball: TShape; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; bx: Integer; by: integer; implementation {$R *.DFM} procedure TForm1.Timer1Timer(Sender: TObject); begin bx:=10; by:=20; sball.left:=sball.left+bx; if sball.left < 0 then begin sball.left := 1; bx := -bx; end; if sball.left > sgrenze.width - sball.left then begin sball.left := sgrenze.width - sball.left; bx := -bx; end; sball.top := sball.top+by; if sball.top < 0 then begin sball.Top := 1; by := -by; end; if sball.top > sgrenze.height - sball.height then begin sball.top := sgrenze.height - sball.height; by := -by; end; end; end. Außerdem würde ich gerne eine dritte Shape als bewegliche Wand einbauen (Mousemove) um ein bisschen mit dem Ball herumzuspielen, weiß aber nicht wie ich das anstelle. vielen Dank im Vorraus, Smokey |
Re: reflektierender Ball - Hilfe!
Was macht das Programm bisher?
Das Problem könnten die großen Schrittweiten sein. |
Re: reflektierender Ball - Hilfe!
Hast du dir schon mal mein
![]() |
Re: reflektierender Ball - Hilfe!
Zitat:
|
Re: reflektierender Ball - Hilfe!
Das
bx:=10; by:=20; am Anfang der Timerroutine macht Dir natürlich die ganze Reflexion im nächsten Schritt wieder zunichte. Gruß Erich |
Re: reflektierender Ball - Hilfe!
Naja ich hoffe nicht das er alles Kopiert, aber ich finde es imme rfürterlich wenn ich da was von "Shape" lese, und dadie Kollision in dem Sample auch gleich berücksichtigt wird ....
Das zu schnelle bewegen hat übrigens u.U. das ![]() |
Re: reflektierender Ball - Hilfe!
klar hab ich mir schon samples und beispiele angeschaut, nur kopieren will ich eigentlich nicht. Ich würde die Vorgehensweiße gerne selbst nachvollziehen.
Der Ball wird an der linken Wand einwandfrei und auch richtig reflektiert. Sobald er an die untere Wand kommt, bleibt er dort stehen und "zittert" so komisch, als ob er festhängt. Die rechte Wand erreicht der Ball erst gar nicht. Er dreht vorher schon um. Ich weiß einfach nicht was falsch läuft. |
Re: reflektierender Ball - Hilfe!
|
Re: reflektierender Ball - Hilfe!
Zitat:
|
Re: reflektierender Ball - Hilfe!
Liste der Anhänge anzeigen (Anzahl: 1)
Im Moment sieht das ganze so aus. Vielleicht wisst ihr dann was nicht korrekt ist.
--> im Anhang |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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 by Thomas Breitkreuz