Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Labyrinth Spiel-Ist das Möglich? (https://www.delphipraxis.net/157282-labyrinth-spiel-ist-das-moeglich.html)

Patrick6 6. Jan 2011 13:44

Labyrinth Spiel-Ist das Möglich?
 
Hallo zusammen

Ich bin auf die Idee gekommen, ein kleines Spiel zu programmieren. Es sollte so aussehen: Man läd eine "Karte" hoch, die ein Labyrint darstellt. Durch dieses Labyrinth muss man dann mit gedrückter Linker Maustaste mit dem Zeichenstift durch und bis ans Ziel kommen (welches ein Button darstellt, der dann anzeigt: "Gewonnen").

Nun ist die Frage ob es überhaupt möglich ist, z.B. eine "Game Over" MEldung anzuzeigen, wenn der Spieler mit dem Stift aus dem Labyrinth rausgeht.

Danke für die Antworten im voraus...

Grüße

Edit: Mir fällt ein, es müsste auch einen Start-Button geben, den man mit dem Ziel-Button irgendwie verknüpft, dass es nur "Gewonnen" anzeigt, wenn die ganze Zeit über von "Start-Button-Move" bis "Ziel-Button-Move" der Pen "aktiviert war und gemalt wurde.

mkinzler 6. Jan 2011 13:53

AW: Labyrinth Spiel-Ist das Möglich?
 
Warum sollte das nicht möglich sein?

pustekuchen 6. Jan 2011 13:56

AW: Labyrinth Spiel-Ist das Möglich?
 
Jap, ist möglich.

btw: Hättest du in deinem alten Thread zwischen den Zeilen gelesen, wären schon ein Teil deiner Fragen beantwortet.

Patrick6 6. Jan 2011 15:04

AW: Labyrinth Spiel-Ist das Möglich?
 
Ja, das hab ich schon gelesen:

"Image1.Picture.LoadFromFile(fileName);
TImage.OnMouseLeave"

Wie man ein Bild öffnet hab ich ja schon. Nur das Ereignis TImage.OnMouseLeave find ich nicht.

Ich hatte auch eher an etwas gedacht wie, "Wenn pen auf schwarzer hintergrund: Game OVer" Oder so ähnlich.

Deep-Sea 6. Jan 2011 15:15

AW: Labyrinth Spiel-Ist das Möglich?
 
Ich glaube die OnMouseLeave-Ereignisse gibt es erst seit neueren Delphi-Versionen ...

Bummi 6. Jan 2011 15:58

AW: Labyrinth Spiel-Ist das Möglich?
 
Falls es die Events erst in neueren Versionen gibt, einfach selbst einbauen:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TImage=Class(ExtCtrls.TImage)
  private
    FOnMouseLeave: TNotifyEvent;
    FOnMouseEnter: TNotifyEvent;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;

  published
  Property OnMouseLeave:TNotifyEvent read FOnMouseLeave Write FOnMouseLeave;
  Property OnMouseEnter:TNotifyEvent read FOnMouseEnter Write FOnMouseEnter;

  End;
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TImage }

procedure TImage.CMMouseEnter(var Message: TMessage);
begin
  if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
  inherited;
end;

procedure TImage.CMMouseLeave(var Message: TMessage);
begin
  if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
  inherited;
end;

end.

Patrick6 6. Jan 2011 16:22

AW: Labyrinth Spiel-Ist das Möglich?
 
Also ich hab mir das jetzt mal so überlegt:
Ich hab einen Start- und einen Ziel-Button. WENN ich auf den StartButton geklickt habe, aktivierts den Pen und wenn ich über das Image fahre zeichent es. Wenn ich beim Ziel-Button angelangt bin, klick ich dort drauf, den Pen deaktivierts und man hat gewonnen.
Nun hab ich da schon ein wenig rumprobiert, aber komm auf keinen grünen Zweig...

Bummi 6. Jan 2011 17:25

AW: Labyrinth Spiel-Ist das Möglich?
 
Lass die Buttons weg, reagiere auf Mousedown im Bild, wenn an der richtigen Stelle da wo Start steht die Maus gedrückt wird aktivierst Du den Pen, jedes Mausmove führt zu einem Paint, nachdem Du geprüft hast ob die Maus nicht schon die Wand berührt(dann Abbruch). Ein MouseUp an der falschen Stelle (da wo nicht Ende steht) führt ebenfalls zum Abbruch.

Patrick6 6. Jan 2011 17:31

AW: Labyrinth Spiel-Ist das Möglich?
 
Okay klingt gut...Wie kann ich so Felder bestimmen? Wenn hier gedrückt, dann...?

Bummi 6. Jan 2011 17:35

AW: Labyrinth Spiel-Ist das Möglich?
 
Die Position hast Du ja im MouseDown, entweder Du weißt wo Start und Ende sind, dann ala
Delphi-Quellcode:
HitStart := (x >= sx1) and (x <= sx2) and (y >= sy1) and (y <= sy2)
oder Du hast das Startfeld eindeutig Farblich markiert, dann könntest Du prüfen ob Pixels[x,y]=StartFarbe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz