Hallo,
ich bin ein ziemlicher Neuling in Delphi, deshalb bitte nicht über dämliche Fragen wundern! ;D
Ich will ein Labyrinth programmieren, durch das man mit dem Mauszeiger durch muss, ohne die Wände zu berühren.
Ich habe nun bereits mit TShapes das Labyrinth erstellt und weiß nun nicht bei OnMouseMove weiter.
Wenn man die Wand berührt, soll ausgegeben werden, dass man die Wände nicht berühren darf und der Mauszeiger sollte,
falls möglich, wieder an die Startposition geführt werden.
Dazu wäre es vllt praktisch, wenn man die Cursorposition noch bestimmten kann!?
Delphi-Quellcode:
unit labyrinth;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TForm1 =
class(TForm)
Shape1: TShape;
Shape2: TShape;
Shape4: TShape;
Shape5: TShape;
Shape7: TShape;
Shape8: TShape;
Shape9: TShape;
Shape10: TShape;
Shape11: TShape;
Shape12: TShape;
Shape13: TShape;
Shape3: TShape;
Shape6: TShape;
Image1: TImage;
procedure Panel1MouseMove(Sender: TObject);
Shift: TShiftState;
X, Y: Integer;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
MyText:
string;
implementation
{$R *.DFM}
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
MyText:= '
';
if x[list=1]OldX
then begin
//ab nach rechts
MyText:= '
Rechts/';
end else begin
// x bleibt
MyText:= '
-/';
end;
if y[list=1]OldY
then begin
// ab nach unten
MyText:= MyText+'
Runter';
end else begin
// y bleibt
MyText:= MyText+'
-';
end;
Panel1.Caption:= MyText;
OldX:= x;
OldY:= y;
end;
end.
Danke und viele Grüße,
Zidane