hallo
Ich bin ein blutiger Anfänger, nur damit 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.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| 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 public 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. |
Ich bräuchte eure Hilfe!
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
Moderiert von
Kha: Delphi-Tags hinzugefügt