Einzelnen Beitrag anzeigen

Zidane

Registriert seit: 9. Mai 2006
9 Beiträge
 
#1

Labyrinth mit OnMouseMove

  Alt 9. Mai 2006, 17:13
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
  Mit Zitat antworten Zitat