Einzelnen Beitrag anzeigen

Smokey002

Registriert seit: 16. Mär 2010
6 Beiträge
 
#1

reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 14:34
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:

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.
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
  Mit Zitat antworten Zitat