Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Kleines Spiel in Delphi (https://www.delphipraxis.net/83690-kleines-spiel-delphi.html)

honkundich 5. Jan 2007 23:07


Kleines Spiel in Delphi
 
Hallo und Guten Tag.
Muss bis Sonntag Abend mit meinem kleinen spiel fertig sein und weis einfach nicht mehr weiter.
Ich poste mal den Quellcode ..vielleicht kann mir ja jemand helfen.
Delphi-Quellcode:
 // Einsameln der Images bzw. der Haselnüsse

procedure TForm1.Haselnuss1Click(Sender: TObject);
begin
Haselnuss1.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
end;


procedure TForm1.Haselnuss7Click(Sender: TObject);
begin
haselnuss7.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
end;

procedure TForm1.Haselnuss4Click(Sender: TObject);
begin
haselnuss4.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
end;

procedure TForm1.Haselnuss6Click(Sender: TObject);
begin
haselnuss6.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
end;

procedure TForm1.Haselnuss3Click(Sender: TObject);
begin
haselnuss3.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
end;

procedure TForm1.Haselnuss2Click(Sender: TObject);
begin
haselnuss2.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
end;

procedure TForm1.Haselnuss5Click(Sender: TObject);
begin
haselnuss5.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
end;
so und nun möchte ich das Spiel so programmieren, dass wenn alle 7 Images angeklickt wurden und visible:=false sind , dass dann das Spiel endet und man gewonnen hat.
Mein Problem ist das die proceduren ja alle von einander unabhängig sind und eine IF Struktur nicht funktioniert wenn ich sie jetzt anfügen würde.
Bitte helft mir!!!

Viele Grüße honkundich

EDatabaseError 5. Jan 2007 23:49

Re: Kleines Spiel in Delphi
 
Delphi-Quellcode:
 // Einsameln der Images bzw. der Haselnüsse

...
public
 procedure HaselnussCheck;
...


procedure TForm1.HaselnussCheck;
begin
 if (Haselnuss1.visible = false) and
    (Haselnuss2.visible = false) and
    (Haselnuss3.visible = false) and
    (Haselnuss4.visible = false) and
    (Haselnuss5.visible = false) and
    (Haselnuss6.visible = false) and
    (Haselnuss7.visible = false) then
 begin
  showmessage('gewonnen');
  close;
 end;
end;

procedure TForm1.Haselnuss1Click(Sender: TObject);
begin
Haselnuss1.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
HaselnussCheck;
end;


procedure TForm1.Haselnuss7Click(Sender: TObject);
begin
haselnuss7.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
HaselnussCheck;
end;

procedure TForm1.Haselnuss4Click(Sender: TObject);
begin
haselnuss4.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
HaselnussCheck;
end;

procedure TForm1.Haselnuss6Click(Sender: TObject);
begin
haselnuss6.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
HaselnussCheck;
end;

procedure TForm1.Haselnuss3Click(Sender: TObject);
begin
haselnuss3.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
HaselnussCheck;
end;

procedure TForm1.Haselnuss2Click(Sender: TObject);
begin
haselnuss2.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
HaselnussCheck;
end;

procedure TForm1.Haselnuss5Click(Sender: TObject);
begin
haselnuss5.visible:=false;
Mediaplayer1.filename:='misc1-22.wav';
MediaPlayer1.open;
MediaPlayer1.play;
HaselnussCheck;
end;
so müssts funktionieren und hallo in der dp!

du überprüfst bei jedem click ob alle unsichtbar sind wenn ja kommt eine Meldung.

mfg
tobi

Blackheart 6. Jan 2007 00:03

Re: Kleines Spiel in Delphi
 
Oder noch ne andere Variante
Delphi-Quellcode:
private
    { Private-Deklarationen }
    procedure SpieleLied; //hier ohne TForm1
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  i:Integer;
implementation

{$R *.dfm}

procedure TForm1.SpieleLied; //Sparst Du Dir ein paar Zeilen unter private einfügen
begin
  Mediaplayer1.filename:='misc1-22.wav';
  MediaPlayer1.open;
  MediaPlayer1.play;
end;

procedure TForm1.Haselnuss1Click(Sender: TObject);
begin
  inc(i); // i um 1 erhöhen
  SpieleLied;
  if i=7 then Form1.Close;
end;


procedure TForm1.Haselnuss7Click(Sender: TObject);
begin
  inc(i);
  SpieleLied;
  if i=7 then Form1.Close;
end;

procedure TForm1.Haselnuss4Click(Sender: TObject);
begin
  inc(i);
  SpieleLied;
  if i=7 then Form1.Close;
end;

procedure TForm1.Haselnuss6Click(Sender: TObject);
begin
  inc(i);
  SpieleLied;
  if i=7 then Form1.Close;
end;

procedure TForm1.Haselnuss3Click(Sender: TObject);
begin
  inc(i);
  SpieleLied;
  if i=7 then Form1.Close;
end;

procedure TForm1.Haselnuss2Click(Sender: TObject);
begin
  inc(i);
  SpieleLied;
  if i=7 then Form1.Close;
end;

procedure TForm1.Haselnuss5Click(Sender: TObject);
begin
  inc(i);
  SpieleLied;
  if i=7 then Form1.Close;
end;

end.

EDatabaseError 6. Jan 2007 00:10

Re: Kleines Spiel in Delphi
 
Zitat:

Zitat von Blackheart
Oder noch ne andere Variante
Delphi-Quellcode:
private
    { Private-Deklarationen }
    procedure Spiel(Sender: TObject); //hier ohne TForm1
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  i:Integer;
implementation

{$R *.dfm}

procedure TForm1.Spiel(Sender: TObject); //Sparst Du Dir ein paar Zeilen unter private einfügen
begin
  inc(i);

  Mediaplayer1.filename:='misc1-22.wav';
  MediaPlayer1.open;
  MediaPlayer1.play;

  (sender as timage).Visible := false;

  if i=7 then Form1.Close;
end;

procedure TForm1.Haselnuss1Click(Sender: TObject);
begin
  Spiel(sender);
end;


procedure TForm1.Haselnuss7Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss4Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss6Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss3Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss2Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss5Click(Sender: TObject);
begin
  Spiel(sender);
end;

end.


du vergisst das hide ;-)
Delphi-Quellcode:
(sender as timage).Visible := false;

--> edit so kann man noch mehr sparen ;-)

Delphi-Quellcode:
private
    { Private-Deklarationen }
    procedure Spiel(Sender: TObject); //hier ohne TForm1
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  i:Integer;
implementation

{$R *.dfm}

procedure TForm1.Spiel(Sender: TObject); //Sparst Du Dir ein paar Zeilen unter private einfügen
begin
  inc(i);

  Mediaplayer1.filename:='misc1-22.wav';
  MediaPlayer1.open;
  MediaPlayer1.play;

  (sender as timage).Visible := false;

  if i=7 then Form1.Close;
end;

procedure TForm1.Haselnuss1Click(Sender: TObject);
begin
  Spiel(sender);
end;


procedure TForm1.Haselnuss7Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss4Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss6Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss3Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss2Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss5Click(Sender: TObject);
begin
  Spiel(sender);
end;

end.

Blackheart 6. Jan 2007 00:16

Re: Kleines Spiel in Delphi
 
Stimmt sorry. :wink:

Sunlight7 6. Jan 2007 00:27

Re: Kleines Spiel in Delphi
 
Zitat:

Zitat von EDatabaseError
Delphi-Quellcode:
procedure TForm1.Haselnuss1Click(Sender: TObject);
begin
  Spiel(sender);
end;


procedure TForm1.Haselnuss7Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss4Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss6Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss3Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss2Click(Sender: TObject);
begin
  Spiel(sender);
end;

procedure TForm1.Haselnuss5Click(Sender: TObject);
begin
  Spiel(sender);
end;

IMHO nur Zeilenverschwendung, verknüpf' gleich alles mit der procedure Spiel kannst Dir dann das alles sparen.

honkundich 6. Jan 2007 00:29

Re: Kleines Spiel in Delphi
 
WooooWWW Danke Danke!!! hätte niemals damit gerechnet so schnell eine Lösung für mein Problem zu erhalten, bzw. eine Antwort zu bekommen. :dancer: :hello:
werde dann gleich morgen mal versuchen mein Programm zu ändern und hoffe das ich es zum Laufen bekommen so das es funktioniert.

Bis morgen dann, ich melde mich wieder

honkundich 6. Jan 2007 00:56

Re: Kleines Spiel in Delphi
 
Hab es nun doch gleich ausprobiert und alles hat geklappt, hab aber die erste, längere Variante genommen damit ich nicht so viel ändern musste und weil ich sonst durcheinander gekommen wäre, die Hauptsache ist ja das es funktioniert.
Habe nun noch eine Frage zu dem Befehl showmessage.
Dabei steht bei mir immer als Überschrift in dem Fenster was ich dann öffnet Project.... irgendwas, kann man davon auch den Text ändern oder könnte mir jemand helfen wie man eine Gewinn oder Verlorenmeldung in einem Label ausgeben kann?!?

Des Weiteren hatte ich noch die Idee dass alle eingesammelten Images gezählt werden bzw aufaddiert werden. wie könnte ich eine solche amsprechende,grafische Ausgabe erstellen??

Nun wirklich bis morgen!!! Gute Nacht :-) :mrgreen: :mrgreen:

Sunlight7 6. Jan 2007 01:02

Re: Kleines Spiel in Delphi
 
Da hilft Hier im Forum suchenApplication.MessageBox weiter :wink:

Delphi-Quellcode:
Application.MessageBox('Dein Text', 'Die Überschrift', MB_OK or MB_ICONINFORMATION);
Edit: :shock: Alle vergessen... :shock:
Herzlich Willkommen in der DP !!! :dp:

EDatabaseError 6. Jan 2007 11:03

Re: Kleines Spiel in Delphi
 
Zitat:

Zitat von Sunlight7
Da hilft Hier im Forum suchenApplication.MessageBox weiter :wink:

Delphi-Quellcode:
Application.MessageBox('Dein Text', 'Die Überschrift', MB_OK or MB_ICONINFORMATION);
Edit: :shock: Alle vergessen... :shock:
Herzlich Willkommen in der DP !!! :dp:

ne hab ich nich vergessen schau dir mal meinen ersten beitrag hier an ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Seite 1 von 2  1 2      

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